From 23b7c6eb4d29bfeae018ce44d5ffeec39e01314c Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Wed, 20 Apr 2016 14:52:53 +0200
Subject: [PATCH] Pass r-values to PiecewiseLinearInterpolation ctor.

---
 Applications/ApplicationsLib/ProjectData.cpp         | 7 ++++---
 NumLib/Function/LinearInterpolationAlongPolyline.cpp | 3 ++-
 Tests/MathLib/TestPiecewiseLinearInterpolation.cpp   | 6 ++++--
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp
index d8feea6de30..58cf4244c20 100644
--- a/Applications/ApplicationsLib/ProjectData.cpp
+++ b/Applications/ApplicationsLib/ProjectData.cpp
@@ -359,8 +359,8 @@ void ProjectData::parseNonlinearSolvers(BaseLib::ConfigTree const& config)
 static std::unique_ptr<MathLib::PiecewiseLinearInterpolation>
 createPiecewiseLinearInterpolation(BaseLib::ConfigTree const& config)
 {
-	auto const coords = config.getConfParam<std::vector<double>>("coords");
-	auto const values = config.getConfParam<std::vector<double>>("values");
+	auto coords = config.getConfParam<std::vector<double>>("coords");
+	auto values = config.getConfParam<std::vector<double>>("values");
 	if (coords.empty() || values.empty())
 	{
 		ERR("The given co-ordinates or values vector is empty.");
@@ -373,7 +373,8 @@ createPiecewiseLinearInterpolation(BaseLib::ConfigTree const& config)
 	}
 
 	return std::unique_ptr<MathLib::PiecewiseLinearInterpolation>{
-	    new MathLib::PiecewiseLinearInterpolation{coords, values}};
+	    new MathLib::PiecewiseLinearInterpolation{std::move(coords),
+	                                              std::move(values)}};
 }
 
 void ProjectData::parseCurves(
diff --git a/NumLib/Function/LinearInterpolationAlongPolyline.cpp b/NumLib/Function/LinearInterpolationAlongPolyline.cpp
index a9ad05c2ce6..115978a9bbc 100644
--- a/NumLib/Function/LinearInterpolationAlongPolyline.cpp
+++ b/NumLib/Function/LinearInterpolationAlongPolyline.cpp
@@ -55,7 +55,8 @@ MathLib::PiecewiseLinearInterpolation LinearInterpolationAlongPolyline::createIn
 		}
 	}
 
-	return MathLib::PiecewiseLinearInterpolation(vec_known_dist, vec_known_values);
+	return MathLib::PiecewiseLinearInterpolation{std::move(vec_known_dist),
+	                                             std::move(vec_known_values)};
 }
 
 double LinearInterpolationAlongPolyline::operator()(const MathLib::Point3d& pnt) const
diff --git a/Tests/MathLib/TestPiecewiseLinearInterpolation.cpp b/Tests/MathLib/TestPiecewiseLinearInterpolation.cpp
index e6fdbfc22f7..2d65607999a 100644
--- a/Tests/MathLib/TestPiecewiseLinearInterpolation.cpp
+++ b/Tests/MathLib/TestPiecewiseLinearInterpolation.cpp
@@ -32,7 +32,8 @@ TEST(MathLibInterpolationAlgorithms, PiecewiseLinearInterpolation)
 		}
 	}
 
-	MathLib::PiecewiseLinearInterpolation interpolation(supp_pnts, values);
+	MathLib::PiecewiseLinearInterpolation interpolation{std::move(supp_pnts),
+	                                                    std::move(values)};
 	// Interpolation
 	for (std::size_t k(0); k<size-1; ++k) {
 		ASSERT_NEAR(0.5, interpolation.getValue(k+0.5), std::numeric_limits<double>::epsilon());
@@ -67,7 +68,8 @@ TEST(MathLibInterpolationAlgorithms, PiecewiseLinearInterpolationSupportPntsInRe
 		}
 	}
 
-	MathLib::PiecewiseLinearInterpolation interpolation(supp_pnts, values);
+	MathLib::PiecewiseLinearInterpolation interpolation{std::move(supp_pnts),
+	                                                    std::move(values)};
 	// Interpolation
 	for (std::size_t k(0); k<size-1; ++k) {
 		ASSERT_NEAR(0.5, interpolation.getValue(k+0.5), std::numeric_limits<double>::epsilon());
-- 
GitLab