From d91724057d8381796cd20d0a503d405717741a3f Mon Sep 17 00:00:00 2001
From: Christoph Lehmann <christoph.lehmann@ufz.de>
Date: Sat, 23 Apr 2016 10:00:29 +0200
Subject: [PATCH] [MaL] resolve setIC() ambiguity

---
 MathLib/ODE/ConcreteOdeSolver.h | 7 ++++---
 MathLib/ODE/OdeSolver.h         | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/MathLib/ODE/ConcreteOdeSolver.h b/MathLib/ODE/ConcreteOdeSolver.h
index af5a69bc883..64ca47e555c 100644
--- a/MathLib/ODE/ConcreteOdeSolver.h
+++ b/MathLib/ODE/ConcreteOdeSolver.h
@@ -73,10 +73,11 @@ public:
 		Implementation::setTolerance(abstol, reltol);
 	}
 
-	void setIC(const double t0,
-	           std::array<double, NumEquations> const& y0) override
+	virtual void setIC(const double t0,
+	                   std::initializer_list<double> const& y0) override
 	{
-		Implementation::setIC(t0, y0.data());
+		assert(y0.size() == NumEquations);
+		Implementation::setIC(t0, y0.begin());
 	}
 
 	void setIC(const double t0,
diff --git a/MathLib/ODE/OdeSolver.h b/MathLib/ODE/OdeSolver.h
index 2500f26e91c..9823741d7de 100644
--- a/MathLib/ODE/OdeSolver.h
+++ b/MathLib/ODE/OdeSolver.h
@@ -39,7 +39,7 @@ public:
 	virtual void setTolerance(const double abstol, const double reltol) = 0;
 
 	virtual void setIC(const double t0,
-	                   std::array<double, NumEquations> const& y0) = 0;
+	                   std::initializer_list<double> const& y0) = 0;
 	virtual void setIC(
 	    const double t0,
 	    Eigen::Matrix<double, NumEquations, 1, Eigen::ColMajor> const& y0) = 0;
-- 
GitLab