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