Вот точное сообщение об ошибке на компиляции:Получение ошибки C3352 (заданная функция не соответствует типу делегата), хотя функция, похоже, соответствует делегат типа
ошибка C3352: «двойной MyNamespace :: MyRefClass :: MyFunction (Const станд :: вектор < _Ty> &, станд :: вектор < _Ty> &, пустота *) ': указанная функция не совпадает с типом делегата' двойной (константный зЬй :: вектор < _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