6
這裏是編譯確切的錯誤信息:得到錯誤C3352(指定的函數不匹配委託類型),即使功能似乎匹配委託類型
錯誤C3352:「雙myNameSpace對象:: MyRefClass :: MyFunction(const std :: vector < _Ty> &,std :: vector < _Ty> &,void *)':指定的函數不匹配委託類型'double(const std :: vector < _Ty> & ,std :: vector < _Ty> &,void *)'
MyFunction
是在參考類MyRefClass
私有函數的引用錯誤顯示出來,當我嘗試創建私人代表MyDelegate
,在相同的類中聲明的實例,用代碼:
MyDelegate^ del = gcnew MyDelegate(&MyRefClass::MyFunction);
據我所知,函數MyFunctionWrapper
的簽名與委託匹配,所以我不確定是什麼導致了錯誤。
爲了完整起見,(私有)函數簽名是:
double MyFunction(const std::vector<double> &x, std::vector<double> &grad, void *data)
和(私人)委託聲明:
delegate double MyDelegate(const std::vector<double> &x, std::vector<double> &grad, void *data);
你完全正確 - 謝謝! – Rory 2012-03-21 17:08:05