std::experimental:: invocation_type, std::experimental:: raw_invocation_type
|
Definiert im 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) |
Berechnet die
Aufrufparameter
, wenn
Fn
mit den Argumenten
ArgTypes...
aufgerufen wird, wie in
INVOKE
(
std::
declval
<
Fn
>
(
)
,
std::
declval
<
ArgTypes
>
(
)
...
)
, wobei
INVOKE
die in
Callable
definierte Operation ist.
Die
Aufrufparameter
des Ausdrucks
INVOKE
(
f, t1, t2, ..., tN
)
werden wie folgt definiert, wobei
T1
der (möglicherweise cv-qualifizierte) Typ von
t1
ist und
U1
entweder
T1&
ist, falls
t1
ein Lvalue ist, andernfalls
T1&&
:
-
Wenn
fein Zeiger auf eine Memberfunktion einer KlasseTist, dann sind die AufrufparameterU1gefolgt von den Parametern vonf, die durcht2, ..., tNabgeglichen werden. -
Wenn
N == 1undfein Zeiger auf Memberdaten einer KlasseTist, dann ist der AufrufparameterU1. -
Wenn
fein Objekt vom Klassentyp ist, sind die Aufrufparameter die Parameter, diet1, ..., tNentsprechen, der bestgeeigneten verfügbaren Funktion für die Argumentet1, ..., tNunter den Funktionsaufrufoperatoren und Ersatzaufruffunktionen vonf. -
In allen anderen Fällen sind die Aufrufparameter die Parameter von
f, diet1, ..., tNentsprechen.
Wenn ein Argument
tI
auf eine Ellipse in der Parameterliste der Funktion passt, ist der entsprechende Aufrufparameter das Ergebnis der Anwendung der Standardargument-Promotions auf
tI
.
Fn
und alle Typen in
ArgTypes
können beliebige vollständige Typen, Arrays unbekannter Größe oder (möglicherweise cv-qualifiziertes)
void
sein.
Inhaltsverzeichnis |
Mitgliedertypen
| Mitgliedtyp | Definition |
| raw_invocation_type < Fn ( ArgTypes... ) > :: type |
R
(
T1, T2, ...
)
, wobei:
Nur definiert, wenn
|
| invocation_type < Fn ( ArgTypes... ) > :: type |
R
(
U1, U2, ...
)
, wobei
Nur definiert, wenn
|
Hilfstypen
|
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) | |
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
C++ Dokumentation
für
Reflection TS
|