
Daniel Wallin wrote:
Please, no more trait blobs! IMO you should separate the traits into individual meta functions that works on all function pointer types. For instance:
function_arity<T>::type Self explanatory.
I'm writing this adaptor again and again. Last time was 4 days ago. If function_arity were in boost it could save a lot of my time :)
function_signature<T>::type
Why metafunction? Function signature itself could be viewed as MPL sequence (or view in MPL terms?): typedef argument_list<void (int)> args; static_assert(is_same<int,at_c<args,0>::type>); or may be even more natural (because arguments usually are numbered from 1): typedef result_and_arguments<void (int)> sig; static_assert(is_same<void,at_c<sig,0>::type>); // result static_assert(is_same<int, at_c<sig,1>::type>); // first arg Conversion from *any* sequence to function signature could help in back convertion. -- Alexander Nasonov