以下是编译时的确切错误消息:
error C3352: ‘double MyNamespace::MyRefClass::MyFunction(const std::vector<_Ty> &,std::vector<_Ty> &,void *)’ : the specified function does not match the delegate type ‘double (const 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,void *data);
解决方法
原文地址:https://www.jb51.cc/c/119750.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。