1、成员函数指针还需要类实例对象来参与调用,而不是仅仅一个函数指针就可以调用。因此成员函数指针和全局函数指针是不兼容的:
typedef void (T::*B)(int x, int y, int z);
B b = &T::foo;
T t;
t.*b(x, y, z); // 必须指定t
2、通过context传入到你最终的回调函数里面。
void fun(A a, B b, C c, void* context)
{
T* t = reinterpret_cast<T*>(context);
t->*b(x, y, z);
}
T t;
B b = &T::foo;
fun(a, b, c, &t);