C++ 用户指定函数的内联

C++ 用户指定函数的内联,c++,function,inlining,C++,Function,Inlining,我目前正在写一个模拟软件。我要计算一个相对复杂的操作符,有几个参数。其中一个参数可以是用户指定的非线性函数。比如: double op(double param1, double param2, ..., function<double(double)> fct){ ... } 乍一看,这似乎是可行的,但编译器是否确实知道FCT对象背后的函数,还是只看到函数指针和返回/参数规范 如何才能实现我想要的?您可以使用普通模板参数,如: template <typename F

我目前正在写一个模拟软件。我要计算一个相对复杂的操作符,有几个参数。其中一个参数可以是用户指定的非线性函数。比如:

double op(double param1, double param2, ..., function<double(double)> fct){
   ...
}
乍一看,这似乎是可行的,但编译器是否确实知道FCT对象背后的函数,还是只看到函数指针和返回/参数规范


如何才能实现我想要的?

您可以使用普通模板参数,如:

template <typename FUNCTOR>
double op(double param1, double param2, ..., FUNCTOR fct){
   ...
}
模板
双运算(双参数1,双参数2,…,函子fct){
...
}
double(*)(double)
应编译,而
模板
不应相关:
template <typename FUNCTOR>
double op(double param1, double param2, ..., FUNCTOR fct){
   ...
}