Fix some more clang-tidy suggestions.

Change-Id: Ic4bb725df1e0b49f2e14c889136433841d98ae22
diff --git a/internal/ceres/covariance_impl.cc b/internal/ceres/covariance_impl.cc
index ee4afd9..7ca23a8 100644
--- a/internal/ceres/covariance_impl.cc
+++ b/internal/ceres/covariance_impl.cc
@@ -558,7 +558,7 @@
       "CovarianceImpl::ComputeCovarianceValuesUsingSparseQR");
 
 #ifndef CERES_NO_SUITESPARSE
-  if (covariance_matrix_.get() == nullptr) {
+  if (covariance_matrix_ == nullptr) {
     // Nothing to do, all zeros covariance matrix.
     return true;
   }
@@ -723,7 +723,7 @@
 bool CovarianceImpl::ComputeCovarianceValuesUsingDenseSVD() {
   EventLogger event_logger(
       "CovarianceImpl::ComputeCovarianceValuesUsingDenseSVD");
-  if (covariance_matrix_.get() == nullptr) {
+  if (covariance_matrix_ == nullptr) {
     // Nothing to do, all zeros covariance matrix.
     return true;
   }
@@ -814,7 +814,7 @@
 bool CovarianceImpl::ComputeCovarianceValuesUsingEigenSparseQR() {
   EventLogger event_logger(
       "CovarianceImpl::ComputeCovarianceValuesUsingEigenSparseQR");
-  if (covariance_matrix_.get() == nullptr) {
+  if (covariance_matrix_ == nullptr) {
     // Nothing to do, all zeros covariance matrix.
     return true;
   }
diff --git a/internal/ceres/covariance_test.cc b/internal/ceres/covariance_test.cc
index 4675ada..410212b 100644
--- a/internal/ceres/covariance_test.cc
+++ b/internal/ceres/covariance_test.cc
@@ -379,7 +379,7 @@
 // x_plus_delta = delta * x;
 class PolynomialParameterization : public LocalParameterization {
  public:
-  virtual ~PolynomialParameterization() {}
+  ~PolynomialParameterization() final {}
 
   bool Plus(const double* x,
             const double* delta,
@@ -402,7 +402,7 @@
 // x_plus_delta = delta * x;
 class PolynomialManifold : public Manifold {
  public:
-  virtual ~PolynomialManifold() {}
+  ~PolynomialManifold() final {}
 
   bool Plus(const double* x,
             const double* delta,
diff --git a/internal/ceres/gradient_problem.cc b/internal/ceres/gradient_problem.cc
index bb11adf..3ef8e4f 100644
--- a/internal/ceres/gradient_problem.cc
+++ b/internal/ceres/gradient_problem.cc
@@ -30,6 +30,8 @@
 
 #include "ceres/gradient_problem.h"
 
+#include <memory>
+
 #include "ceres/local_parameterization.h"
 #include "ceres/manifold_adapter.h"
 #include "glog/logging.h"
@@ -38,7 +40,8 @@
 
 GradientProblem::GradientProblem(FirstOrderFunction* function)
     : function_(function),
-      manifold_(new EuclideanManifold(function_->NumParameters())),
+      manifold_(
+          std::make_unique<EuclideanManifold>(function_->NumParameters())),
       scratch_(new double[function_->NumParameters()]) {
   CHECK(function != nullptr);
 }
@@ -59,13 +62,11 @@
 
 GradientProblem::GradientProblem(FirstOrderFunction* function,
                                  Manifold* manifold)
-    : function_(function),
-      manifold_(manifold),
-      scratch_(new double[function_->NumParameters()]) {
+    : function_(function), scratch_(new double[function_->NumParameters()]) {
   CHECK(function != nullptr);
-  if (manifold == nullptr) {
-    manifold_.reset(new EuclideanManifold(function_->NumParameters()));
-  }
+  manifold_.reset(manifold != nullptr
+                      ? manifold
+                      : new EuclideanManifold(function_->NumParameters()));
   CHECK_EQ(function_->NumParameters(), manifold_->AmbientSize());
 }
 
diff --git a/internal/ceres/parameter_block_test.cc b/internal/ceres/parameter_block_test.cc
index 713a0f7..f7923b3 100644
--- a/internal/ceres/parameter_block_test.cc
+++ b/internal/ceres/parameter_block_test.cc
@@ -111,7 +111,8 @@
 
 struct TestManifold : public Manifold {
  public:
-  virtual ~TestManifold() {}
+  ~TestManifold() final {}
+
   bool Plus(const double* x,
             const double* delta,
             double* x_plus_delta) const final {
@@ -165,8 +166,8 @@
 class BadManifold : public Manifold {
  public:
   BadManifold() : calls_(0) {}
+  ~BadManifold() final {}
 
-  virtual ~BadManifold() {}
   bool Plus(const double* x,
             const double* delta,
             double* x_plus_delta) const final {
diff --git a/internal/ceres/problem.cc b/internal/ceres/problem.cc
index 703d29d..e6a7350 100644
--- a/internal/ceres/problem.cc
+++ b/internal/ceres/problem.cc
@@ -197,8 +197,8 @@
   return impl_->ParameterBlockTangentSize(values);
 }
 
-int Problem::ParameterBlockTangentSize(const double* parameter_block) const {
-  return impl_->ParameterBlockTangentSize(parameter_block);
+int Problem::ParameterBlockTangentSize(const double* values) const {
+  return impl_->ParameterBlockTangentSize(values);
 }
 
 bool Problem::HasParameterBlock(const double* values) const {