If it does, the type of its member type
result_type
is based on the type
T of the wrapper's target object:
if T is a pointer to function type,
result_type shall be a synonym for the return type of T;
if T is a pointer to member function,
result_type shall be a synonym for the return type of T;
if
T is a class type
and the
qualified-id T::result_type is valid and denotes a type (
[temp.deduct]),
then
result_type shall be a synonym for
T::result_type;
otherwise
result_type shall not be defined
.