13 void eulerODE(vector<double>& y, double& t, double& dt);
14 void midpointODE(vector<double>& y, double& t, double& dt);
17 void (ODEsolver::*useMethod)(vector<double>&, double&, double&);
22 void timeloop(vector<double>& y, double ts, double te, double dt);
26 ODEsolver::ODEsolver()
32 void ODEsolver::eulerODE(vector<double>& y, double& t, double& dt)
37 void ODEsolver::midpointODE(vector<double>& y, double& t, double& dt)
44 void ODEsolver::init()
46 ODEsolver::useMethod = &ODEsolver::midpointODE;
49 void ODEsolver::timeloop(vector<double>& y, double ts, double te, double dt)
51 (ODEsolver::useMethod)(y,ts,dt); // { dg-error "" } should use this->*
54 int main (int nargs, char** args)
57 vector<double> y(2); double t_start=5.; double t_end=7.; double dt=2.;
58 solver.timeloop(y,t_start,t_end,dt);