It is illegal to assign the address of a static class member to a pointer to member. However, you can take the address of a static member function of a class and treat it as if it were an external function:
class A { public: static void f();};void main() { void (*p) () = &A::f; //OK, p is an ordinary pointer to function}
The secret here is that a static member function is actually an ordinary global function, whose class serves as a namespace.