|
Boost : |
From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2007-01-10 06:45:40
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk