----- Original Message ----- From: "Daniel Frey" <[EMAIL PROTECTED]>
> This not only leads to safer class detection, it also allows us to > implement is_member_function without providing versions for every number > of parameters. This is already possible. The specialization... R C::* ...matches all pointers-to-members, including pointers-to-member-functions. However, when it *does* match a pointer-to-member-function, the type of 'R' is a function type. Therefore, it is possible to detect a pointer-to-member-function like this: template<class> struct is_pointer_to_member_function { enum { value = false }; }; template<class R, class C> struct is_pointer_to_member_function<R C::*> { enum { value = is_same<void (R), void (R*)>::value }; }; ...since only function types are implicitly adjusted to pointer-to-function when used as a parameter. Regards, Paul Mensonides _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost