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_type
whosetype
typedef is the implied function type of the callable object when called with the given argument types.For example, if we define
C
asstruct C { int operator()(double d, int i); int operator()(double d1, double d2); };then
std::invocation_type<C(int, int)>::type
would 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.