I can't get this code working:
class Scheme_euler
{
private:
....
public:
....
template<class D, double (D::*drift)(dou ble) const, double
(D::*diffu)(dou ble) const>
void operator ()(Path& thePath, const D& theD) const;
};
Scheme_euler theEu(0, 1, 100); //constructor
theEu<Diff_sine , &Diff_sine:: mu, &Diff_sine::sig ma>
(thePath, theDiff_sine);
However if I don't overload the operator () but just consider a member
solve function, then using:
theEu.solve<Dif f_sine, &Diff_sine:: mu, &Diff_sine::sig ma>
(thePath, theDiff_sine);
woks fine.
So the problem is in overloading the operator, but I can't understand
where I'm wrong.
Thank you in advance for your help!
StephQ
class Scheme_euler
{
private:
....
public:
....
template<class D, double (D::*drift)(dou ble) const, double
(D::*diffu)(dou ble) const>
void operator ()(Path& thePath, const D& theD) const;
};
Scheme_euler theEu(0, 1, 100); //constructor
theEu<Diff_sine , &Diff_sine:: mu, &Diff_sine::sig ma>
(thePath, theDiff_sine);
However if I don't overload the operator () but just consider a member
solve function, then using:
theEu.solve<Dif f_sine, &Diff_sine:: mu, &Diff_sine::sig ma>
(thePath, theDiff_sine);
woks fine.
So the problem is in overloading the operator, but I can't understand
where I'm wrong.
Thank you in advance for your help!
StephQ
Comment