我的問題與數字食譜有關。 我有一個全球性的功能,計算功能的載體,以最小化數值食譜:如何將函數作爲函數的參數傳遞給C++
VecDoub vecfunc(VecDoub_I x) {
// code is here
}
在一類功能運行,我試着撥打數字食譜功能蠑螈,如圖讀取我的功能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);
}
}
功能蠑螈被聲明爲
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 &'
InRe標題問題:有函數指針的c方式,函子的C++ 03方式和lambda表達式的C++ 11方式。我可以通過前兩個想法,也許一些嘗試和錯誤,但我希望一個職業球員將沿着比較和對比所有三個... – dmckee