On Mar 11, 12:43 pm, "StephQ" <askmeo...@mailinator.comwrote:

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);