我有一个第三方库,它有一个将函数指针作为第一个参数的方法:
int third_party_method(void (*func)(double*, double*, int, int, double*), ...);
我想传递一个指向类方法的指针,该方法声明如下:
class TestClass
{
public:
void myFunction (double*, double*, int, int, void*);
我尝试按如下方式传递此函数:
TestClass* tc = new TestClass();
using namespace std::placeholders;
third_party_method(std::bind(&TestClass::myFunction, tc, _1, _2, _3, _4, _5), ...);
但是,这不会编译:
Conversion of parameter 1 from 'std::tr1::_Bind<_Result_type,_Ret,_BindN>' to 'void (__cdecl *)(double *,double *,int,int,void *)' is not possible
with
[
_Result_type=void,
_Ret=void,
_BindN=std::tr1::_Bind6<std::tr1::_Callable_pmf<void (__thiscall TestClass::* const )(double *,double *,int,int,void *),TestClass,false>,TestClass *,std::tr1::_Ph<1>,std::tr1::_Ph<2>,std::tr1::_Ph<3>,std::tr1::_Ph<4>,std::tr1::_Ph<5>>
]
有什么办法可以将成员传递给函数?