The title say it all really, the function object returned from mem_fn is an unspecified type that:
"3.5: 2 The simple call wrapper shall be derived from std::unary_function<cv T*, Ret > when pm is a pointer to member function with cv-qualifier cv and taking no arguments, where Ret is pms return type. 3 The simple call wrapper shall be derived from std::binary_function<cv T*, T1, Ret > when pm is a pointer to member function with cv-qualifier cv and taking one argument of type T1, where Ret is pms return type." However my tests indicate that this inheritance is not taking place, and in any case the nested members result_type and argument_type are not present in the function object returned. Regards, John Maddock. -- Summary: std::mem_fn returns a function object that does not inherit from std::unary_function/binary_function Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: john at johnmaddock dot co dot uk GCC build triplet: linux.x86 GCC host triplet: linux.x86 GCC target triplet: linux.x86 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24800