我的问题与数字食谱有关。我有一个全局函数,它计算要最小化的函数向量
VecDoub vecfunc(VecDoub_I x) {
// code is here
}
在类函数run中,我尝试调用 Numerical Recipes 函数 newt,它读取我的函数vecfunc,如图所示,
class A {
void run() {
VecDoub_IO pt;
pt.resize(2);
pt[0] = 0.5;
pt[1] = 0.5;
bool check = false;
newt<VecDoub>(pt, check, &vecfunc);
}
}
函数newt被声明为
template <class T>
void newt(VecDoub_IO &x, Bool &check, T &vecfunc)
为什么会出现以下编译器错误?
error C2664: 'newt' : cannot convert parameter 3 from 'VecDoub (__cdecl *)(VecDoub_I)' to 'VecDoub &'