Date
2009-12-22.00:00:00
Message id
1484

Content

[func.require]/3 b 1 says

3 If a call wrapper ([func.def]) has a weak result type the type of its member type result_type is based on the type T of the wrapper's target object ([func.def]):

  • if T is a function, reference to function, or pointer to function type, result_type shall be a synonym for the return type of T;
  • [..]

The first two enumerated types (function and reference to function) can never be valid types for T, because

[func.def]/7

7 A target object is the callable object held by a call wrapper.

and [func.def]/3

3 A callable type is a pointer to function, a pointer to member function, a pointer to member data, or a class type whose objects can appear immediately to the left of a function call operator.

exclude functions and references to function as "target objects".