I could be totally wrong here, but as I understand it, C++ doesn\'t really have a native \"pointer to member function\" type. I know you can do tricks with Boost and mem_fu
C++ is already a big language, and adding this would have made it bigger. What you really want is even worse than just a bound member function, it's something closer to boost::function. You want to store both a void(*)() and a pair for callbacks. After all, the reason is that you want the give the caller a complete callback, and the callee should not care about the exact details.
The size would likely be sizeof(void*)+sizeof(void(*)()). Pointers to member functions can be bigger, but that is because they are unbound. They need to deal with the possibility that youre' taking the address of a virtual function, for instance. However, a built-in bound-pointer-to-member-function type would not suffer from this overhead. It can resolve the exact function to be called at the moment of binding.
This is not possible with a UDT. boost::function cannot discard the overhead of a PTMF when it binds the object pointer. You need to know understand structure of a PTMF, vtable, etcetera - all non-standard stuff. However, we might get there now with C++1x. Once it's in std::, it's fair game for compiler vendors. The standard library implementation itself is not portable (see e.g. type_info).
You'd still want to have some nice syntax, I guess, even if a compiler vendor implements this in the library. I'd like std::function. (It doesn't clash with existing syntax, as X::bar is not an expression - only &X::bar is)