这就是我试图实现的目标:
class MyClass
{
public:
template<typename T>
void whenEntering( const std::string& strState,
T& t,
void T::(*pMemberFunction)(void)) /// compilation fails here
{
t.(*pMemberFunction)(); // this line is only an example
}
}
它是一种回调系统,用于对我收到的某些事件做出反应。
但是 Visual 2010 给了我以下编译错误:
error C2589: '(' : illegal token on right side of '::'
我可能对指向成员的语法有误...但我也担心我可能不会以这种方式定义模板...您有什么想法吗?