S
StephQ
I can't get this code working:
class Scheme_euler
{
private:
....
public:
....
template<class D, double (D::*drift)(double) const, double
(D::*diffu)(double) const>
void operator ()(Path& thePath, const D& theD) const;
};
Scheme_euler theEu(0, 1, 100); //constructor
theEu<Diff_sine, &Diff_sine::mu, &Diff_sine::sigma>
(thePath, theDiff_sine);
However if I don't overload the operator () but just consider a member
solve function, then using:
theEu.solve<Diff_sine, &Diff_sine::mu, &Diff_sine::sigma>
(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)(double) const, double
(D::*diffu)(double) const>
void operator ()(Path& thePath, const D& theD) const;
};
Scheme_euler theEu(0, 1, 100); //constructor
theEu<Diff_sine, &Diff_sine::mu, &Diff_sine::sigma>
(thePath, theDiff_sine);
However if I don't overload the operator () but just consider a member
solve function, then using:
theEu.solve<Diff_sine, &Diff_sine::mu, &Diff_sine::sigma>
(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