Aquí está el mensaje de error exacto en la compilación:error al obtener C3352 (función especificada no coincide con tipo de delegado), a pesar de que la función parece coincidir con el tipo delegado
C3352 de error: 'doble MyNamespace :: MyRefClass :: MyFunction (const std :: vector < _Ty> &, std :: vector < _Ty> &, void *) ': la función especificada no coincide con el tipo de delegado' doble (const std :: vector < _Ty> & , std :: vector < _Ty> &, void *) '
MyFunction
es una función privada en la clase de referencia MyRefClass
El error citado aparece cuando intento crear una instancia del delegado privada MyDelegate
, declaró en la misma clase de referencia, con el código:
MyDelegate^ del = gcnew MyDelegate(&MyRefClass::MyFunction);
Por lo que puedo decir, las firmas de la función MyFunctionWrapper
coinciden con el delegado, por lo que no estoy seguro de qué está causando el error.
Para completar, el (privado) firma de la función es:
double MyFunction(const std::vector<double> &x, std::vector<double> &grad, void *data)
y la declaración de delegado (privada) es:
delegate double MyDelegate(const std::vector<double> &x, std::vector<double> &grad, void *data);
Tienes razón, ¡gracias! – Rory