C++ allows casting a pointer to member functions of one type to another pointer to member, as long as the signatures of the two match. However, the results of such a cast are implementation-defined. In other words, you have to consult your compiler’s manual to make sure that it supports pointer to member casts. Some compilers may not support this feature and therefore, you shouldn’t rely on this feature if you’re writing portable code.