Function-function pointers are completely different animals from function pointers. They must encode not only a pointer to a member function, but must also encode the correct type for the member function, so that the runtime knows how to call the member function. This very much depends on how the compiler implements the classes, and that the implementation certainly changes between compiler providers and often changes inside compilers based on how the compiler is called.