我想使用一个库(nlopt),它有一个函数 set_min_objective,它接受一个指向数值函数 myfunc 的指针并找到它的最小值。我想创建一个包含适当初始化的成员函数的类。然后 set_min_objective 将在特定实例中找到最佳值(以下示例中的 myP)。调用顺序为:
opt.set_min_objective(myfunc, NULL);
我想使用类似的东西:
opt.set_min_objective(myP.f, NULL);
我在编译时得到的错误是:
main.cpp: In function 'int main()':
main.cpp:79:34: error: no matching function for call to 'nlopt::opt::set_min_objective(<unresolved overloaded function type>, NULL)'
../lib/nlopt.hpp:335:10: note: candidates are: void nlopt::opt::set_min_objective(double (*)(unsigned int, const double*, double*, void*), void*)
../lib/nlopt.hpp:342:10: note: void nlopt::opt::set_min_objective(double (*)(const std::vector<double>&, std::vector<double>&, void*), void*)
../lib/nlopt.hpp:368:10: note: void nlopt::opt::set_min_objective(double (*)(unsigned int, const double*, double*, void*), void*, void* (*)(void*), void* (*)(void*))
让 set_min_objective 接受 myP.f 作为指向函数的普通指针的最简单解决方案是什么?请注意,myP.f 和 myfunc 具有相同的参数和返回值类型。
谢谢,
京东