我有一个函子,我需要将其发送到一个接收函数指针作为参数的函数(例如CreateThread
).
我可以以某种方式将其转换为静态方法地址吗?如果没有,我该怎么做?
不,您不能将类类型对象转换为函数指针。
但是,您可以编写一个非成员包装函数来调用正确实例上的成员函数。许多 API,包括CreateThread
,允许您提供一个指针,当它调用您的回调时,它将返回给您(例如CreateThread
,这是lpParameter
范围)。例如:
DWORD WINAPI FunctorWrapper(LPVOID p)
{
// Call operator() on the functor pointed to by p:
return (*static_cast<FunctorType*>(p))();
}
// Used as:
FunctorType f;
CreateThread(0, 0, &FunctorWrapper, &f, 0, 0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)