On Mar 11, 12:43 pm, "StephQ" <(EMail Removed)> wrote:
> 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
I havent tried the code but just off the back of my mind I recall
similar problems with the function operator.
try the following..
theEu.operator()<Diff_sine, &Diff_sine::mu, &Diff_sine::sigma>
(thePath, theDiff_sine);
