私は2つのファンクターを持っています:
class SFunctor {
public:
SFunctor(double a) { _a = a; }
double operator() (double t) { return _a * sin(t); }
private:
double _a;
};
class CFunctor {
public:
CFunctor(double b) { _b = b; }
double operator() (double t) { return _b * cos(t); }
private:
double _b;
};
これらの関数のいずれかを別の関数に渡したい:
double squarer(double x, ??______?? func) {
double y = func(x);
return y * y;
}
私のメインプログラムでは、次のような呼び出しを行いたいです:
CFunctor sine(2.);
SFunctor cosine(4.);
double x= 0.5;
double s = squarer(x, sine);
double c = squarer(x, cosine);
関数ファンドを指定するにはどうすればよいですか??の代わりにその前にあるものです。_ ?? ?