
Hi Dean, FunctionTypes (the grown up version of function_traits) has recently been accepted into Boost, so it will be an official part of Boost. It provides the functionality you propose. http://tinyurl.com/qaf5f (zip archive in the Boost file vault) Further, it provides proper decomposition of member function pointers, dealing with vendor specific extension regarding the calling convention (for e.g. calling between .net and unmanaged code), works around weird compiler glitches (such as Borland won't allow to define a template specialization for 'Ret (Class::*)(Arg)' and MSVC won't produce the same type if you deduce a member function pointer 'T C::*' and put T and C back together), etc. (see the documentation and examples included for details). Since you mention Fusion in this context, please also take a look at: http://tinyurl.com/ydoq9b (zip archive in the Boost file vault) It's a Fusion extension (documentation and tests included) to call and get called from Fusion code, built on top of FunctionTypes. I recently received Joel's blessing on this one, so it will become an official part of Fusion. Please note however that this code has just been finished, so it's yet untested with compilers other than GCC4/Darwin. Regards, Tobias