У меня есть два функтора:
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);
Как мне указать функцию fund, то есть то, что идет перед ней вместо ??_?? ?