【发布时间】:2011-06-24 09:55:42
【问题描述】:
我正在尝试调整我编写的一些数学代码以允许使用任意函数,但我似乎只能通过在编译时预定义它们来做到这一点,这似乎很笨重。我目前正在使用函数指针,但据我所知,仿函数也会出现同样的问题。举一个简单的例子,对于前向差分,使用的代码是:
double xsquared(double x) {
return x*x;
}
double expx(double x) {
return exp(x);
}
double forward(double x, double h, double (*af)(double)) {
double answer = (af(x+h)-af(x))/h;
return answer;
}
前两个函数中的任何一个都可以作为第三个参数传递。然而,我想做的是传递用户输入(在有效的 C++ 中),而不必事先设置函数。任何帮助将不胜感激!
【问题讨论】:
-
那么您想构建一个功能齐全的 C++ 编译器吗?呃……我认为这有点超出了 Stack Overflow 的范围。
-
c++ 不是脚本语言...您可以尝试与 lua、tcl 或 python 之类的东西集成
-
您使用了错误的语言。 (C++0x 确实有闭包等,但它可能仍然很笨重。)
标签: c++ function-pointers functor