std::meta::type_of
Von de.cppreference.net
| Definiert in Header <meta>
|
||
consteval std::meta::info type_of( std::meta::info r );
|
(seit C++26) | |
Gibt eine Reflexion zurück, die den Typ von dem darstellt, was r repräsentiert.
Formell:
- Falls
reinen Funktionsparameter repräsentiert (siehe std::meta::parameters_of), wird eine Reflexion des entsprechenden Typs in der Parameter-Typ-Liste der Funktion zurückgegeben. - Falls
reinen Wert, ein Objekt, eine Variable, eine Funktion, ein nicht-statisches Datenmember oder ein unbenanntes Bitfeld repräsentiert, wird eine Reflexion des Typs von dem, wasrrepräsentiert, zurückgegeben. - Falls
reine Annotation repräsentiert, wirdstd::meta::type_of(std::meta::constant_of(r))zurückgegeben. - Falls
reinen Enumerator eines Aufzählungstyps E repräsentiert:
- falls
type_ofnach der Definition von E aufgerufen wird, wird eine Reflexion von E zurückgegeben; - andernfalls (
type_ofwird innerhalb der Definition von E aufgerufen) wird eine Reflexion eines Ganzzahltyps zurückgegeben (welcher der Typ des Enumerators innerhalb der Aufzählungsdefinition ist).
- falls
- Falls
reine direkte Basisklassenbeziehung repräsentiert (d.h. ein Element vonstd::meta::bases_of(x, ctx)), wird eine Reflexion der Basisklasse in der Beziehung zurückgegeben. - Falls
reine Datenmemberbeschreibung repräsentiert (d.h. einen von std::meta::data_member_spec zurückgegebenen Wert), wird eine Reflexion des Typs in der Beschreibung zurückgegeben.
Parameter
| r | - | eine Reflexion von etwas, das einen Typ hat |
Rückgabewert
Der Typ von dem, was r repräsentiert.
Ausnahmen
Wirft std::meta::exception, es sei denn, das, was r repräsentiert, hat einen Typ. Das heißt, r muss eines der folgenden repräsentieren:
- Wert
- Annotation
- Objekt
- Variable
- Funktion, deren Typ keinen nicht deduzierten Platzhaltertyp enthält und die kein Konstruktor oder Destruktor ist
- Enumerator
- nicht-statisches Datenmember
- unbenanntes Bitfeld
- direkte Basisklassenbeziehung
- Datenmemberbeschreibung
- Funktionsparameter
Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
Siehe auch
(C++26) |
prüft, ob die Reflexion einen Typ repräsentiert (Funktion) |