首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户指定函数的内嵌

用户指定函数的内嵌
EN

Stack Overflow用户
提问于 2015-05-18 18:49:40
回答 1查看 58关注 0票数 0

我现在正在写一个模拟软件。我有一个相对复杂的运算符要计算,有几个参数。其中一个参数可以是用户指定的非线性函数.类似于:

代码语言:javascript
复制
double op(double param1, double param2, ..., function<double(double)> fct){
   ...
}

由于函数将被多次调用,所以我希望使编译器能够内联该函数。幸运的是,在调用op时可以对函数进行硬编码。Sou -我将始终有类似于op(1.0, 2.0, ..., nonlinear1)的东西,其中nonlinear1是函数的名称,而不是变量或其他什么。

我在想两个想法:

  1. 函数指针double (*)(double):无法工作。
  2. 模板参数:

详情如下:

代码语言:javascript
复制
template <function<double(double)> FCT> 
double op(double param1, double param2, ...){
   ...
   double a = FCT(param2);
   ...
}

乍一看,这似乎是可行的,但编译器是否真正知道FCT对象背后的函数,还是只看到函数指针和返回/参数规范?

不然我怎么能实现我想要的呢?

EN

回答 1

Stack Overflow用户

发布于 2015-05-18 18:52:49

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

代码语言:javascript
复制
template <typename FUNCTOR>
double op(double param1, double param2, ..., FUNCTOR fct){
   ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30310777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档