Technical Specification | ||||
Filesystem library(filesystem TS) | ||||
Library fundamentals(library fundamentals TS) | ||||
Library fundamentals 2(library fundamentals TS v2) | ||||
Library fundamentals 3(library fundamentals TS v3) | ||||
Extensions for parallelism(parallelism TS) | ||||
Extensions for parallelism 2(parallelism TS v2) | ||||
Extensions for concurrency(concurrency TS) | ||||
Extensions for concurrency 2(concurrency TS v2) | ||||
Concepts(concepts TS) | ||||
Ranges(ranges TS) | ||||
Reflection(reflection TS) | ||||
Mathematical special functions(special functions TR) | ||||
Experimental Non-TS | ||||
Pattern Matching | ||||
Linear Algebra | ||||
std::execution | ||||
Contracts | ||||
2D Graphics |
experimental::invocation_typeexperimental::raw_invocation_type | ||||
Type-erased and polymorphic allocators | ||||
Variable templates for type traits |
Defined in header <experimental/type_traits> | ||
template<class> struct raw_invocation_type;//undefined | (1) | (library fundamentals TS) |
template<class> struct invocation_type;//undefined | (2) | (library fundamentals TS) |
Computes theinvocation parameters whenFn
is called with the argumentsArgTypes...
, as inINVOKE(std::declval<Fn>(),std::declval<ArgTypes>()...), whereINVOKE is the operation defined inCallable.
Theinvocation parameters of the expressionINVOKE(f, t1, t2, ..., tN) is defined as follows, whereT1
is the (possibly cv-qualified) type oft1
andU1
isT1&
ift1
is an lvalue andT1&&
otherwise:
f
is a pointer to a member function of a classT
, then the invocation parameters areU1
followed by the parameters off
matched byt2, ..., tN
.N == 1
andf
is a pointer to member data of a classT
, then the invocation parameter isU1
.f
is an object of class type, the invocation parameters are the parameters matchingt1, ..., tN
of the best viable function for the argumentst1, ..., tN
among the function call operators and surrogate call functions off
.f
matchingt1, ..., tN
.If an argumenttI
matches an ellipsis in the function's parameter list, the corresponding invocation parameter is the result of applying the default argument promotions totI
.
Fn
and all types inArgTypes
can be any complete type, array of unknown bound, or (possibly cv-qualified)void
.
Contents |
Member type | Definition |
raw_invocation_type<Fn(ArgTypes...)>::type | R(T1, T2, ...), where:
Only defined if |
invocation_type<Fn(ArgTypes...)>::type | R(U1, U2, ...), where
Only defined if |
template<class T> using raw_invocation_type_t=typename raw_invocation_type<T>::type; | (library fundamentals TS) | |
template<class T> using invocation_type_t=typename invocation_type<T>::type; | (library fundamentals TS) | |
This section is incomplete Reason: no example |
C++ documentation forReflection TS |