std::experimental:: invocation_type, std::experimental:: raw_invocation_type
|
Definido en el encabezado
<experimental/type_traits>
|
||
|
template
<
class
>
struct
raw_invocation_type
;
//undefined
|
(1) | (library fundamentals TS) |
|
template
<
class
>
struct
invocation_type
;
//undefined
|
(2) | (library fundamentals TS) |
Calcula los
parámetros de invocación
cuando
Fn
es llamado con los argumentos
ArgTypes...
, como en
INVOKE
(
std::
declval
<
Fn
>
(
)
,
std::
declval
<
ArgTypes
>
(
)
...
)
, donde
INVOKE
es la operación definida en
Callable
.
Los
parámetros de invocación
de la expresión
INVOKE
(
f, t1, t2, ..., tN
)
se definen de la siguiente manera, donde
T1
es el tipo (posiblemente calificado cv) de
t1
y
U1
es
T1&
si
t1
es un lvalue y
T1&&
en caso contrario:
-
Si
fes un puntero a una función miembro de una claseT, entonces los parámetros de invocación sonU1seguido de los parámetros defcoincidentes cont2, ..., tN. -
Si
N == 1yfes un puntero a dato miembro de una claseT, entonces el parámetro de invocación esU1. -
Si
fes un objeto de tipo clase, los parámetros de invocación son los parámetros coincidentes cont1, ..., tNde la función más viable para los argumentost1, ..., tNentre los operadores de llamada a función y las funciones de llamada sustitutas def. -
En todos los demás casos, los parámetros de invocación son los parámetros de
fcoincidentes cont1, ..., tN.
Si un argumento
tI
coincide con una elipsis en la lista de parámetros de la función, el parámetro de invocación correspondiente es el resultado de aplicar las promociones de argumentos predeterminadas a
tI
.
Fn
y todos los tipos en
ArgTypes
pueden ser cualquier tipo completo, array de límite desconocido, o (posiblemente calificado con cv)
void
.
Contenidos |
Tipos de miembros
| Tipo de miembro | Definición |
| raw_invocation_type < Fn ( ArgTypes... ) > :: type |
R
(
T1, T2, ...
)
, donde:
Solo definido si
|
| invocation_type < Fn ( ArgTypes... ) > :: type |
R
(
U1, U2, ...
)
, donde
Solo definido si
|
Tipos auxiliares
|
template
<
class
T
>
using raw_invocation_type_t = typename raw_invocation_type < T > :: type ; |
(especificación técnica de biblioteca fundamentals) | |
|
template
<
class
T
>
using invocation_type_t = typename invocation_type < T > :: type ; |
(especificación técnica de biblioteca fundamentals) | |
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
Documentación de C++
para
Reflection TS
|