A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.
Document number: N3866
Date: 2014-01-19
Invocation type traits (Rev. 2)
by Mike Spertus
Excerpt:
We propose a (compiler-supported) type trait
std::invocation_typewhosetypetypedef is the implied function type of the callable object when called with the given argument types.For example, if we define
Casstruct C { int operator()(double d, int i); int operator()(double d1, double d2); };then
std::invocation_type<C(int, int)>::typewould beint(double, int). More precisely the return type ofinvocation_type<Fn(ArgTypes...)>isresult_of<Fn(ArgTypes...)>and each argument type is the same as the formal parameter type matched in the call toFn. For more detailed information, see the use cases and wording below.The main difference between this and previous revisions is that we add two variants of the
invocation_type.

Add a Comment
Comments are closed.