Tu jest dokładny komunikat o błędzie na kompilacji:Uzyskiwanie błąd C3352 (określona funkcja nie pasuje typ delegata), choć wydaje się, aby dopasować funkcja delegata typu
error C3352: „double MyNamespace :: MyRefClass :: MyFunction (const std :: vector < _Ty> &, std :: vector < _Ty> &, void *) ': określona funkcja nie pasuje typ delegata' podwójne (const std :: vector < _Ty> & , std :: vector < _Ty> &, void *) '
MyFunction
to prywatna funkcja w klasie referencyjnej MyRefClass
Cytowany błąd pojawia się, gdy próbuję utworzyć instancję prywatnej delegata MyDelegate
, zadeklarowanego w tej samej klasie referencyjnej, z kodem:
MyDelegate^ del = gcnew MyDelegate(&MyRefClass::MyFunction);
O ile mogę stwierdzić, podpisy funkcji MyFunctionWrapper
pasują do delegata, więc nie jestem pewien, co powoduje błąd.
Dla kompletności (prywatny) Podpis funkcja jest:
double MyFunction(const std::vector<double> &x, std::vector<double> &grad, void *data)
i (prywatny) oświadczenie delegata jest:
delegate double MyDelegate(const std::vector<double> &x, std::vector<double> &grad, void *data);
Masz dokładnie rację - dziękuję! – Rory