C ++将函数传递给functor

时间:2016-06-13 14:11:17

标签: c++ functor

使用仿函数时遇到问题。 下面显示了一个函子,它接受任何函数并返回其函数值和派生词。

template <class T>
struct Funcd {
    T &func;
    double f;
    Funcd(T &funcc) : func(funcc) {}
    double operator() (double &x)
    {
        return f=func(x);
    }

    void df(double &x, double &df)
    {
        ...
    }
};

假设我已经有了像

这样的功能
double FunctionA(double &x){
    return x*x;
}

我的问题是我不知道如何使用这个仿函数。 任何人都可以在使用这个函子的主函数中找到一个例子来查找函数值和派生吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您在创建仿函数时将其添加到仿函数中。使用与示例中相同的函数名称,我将执行以下操作:

Funcd fd(FunctionA);

那么你可以fd作为一个函数:

double v = fd(2);

可能你必须在创建fd时指定模板参数,但我还没有编译或测试过这段代码。