std::cout << "F\n";
int _tmain(int argc, _TCHAR* argv)
void (C::*fp)() = &C::f;
void *vp = *(void**)&fp;
void (C::*_fp)() = *(void (C::**)())&vp;
i'm not advocating this as a good idea by any means, just that it always "seems to work".
imo abstract functors are a much much better way to accomplish something like this.