私の質問は数値レシピに関連しています。最小化する関数のベクトルを計算するグローバル関数があります
VecDoub vecfunc(VecDoub_I x) {
// code is here
}
クラス関数の実行で、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 &'