std::meta::alignment_of
| Definiert in Header <meta>
|
||
consteval std::size_t alignment_of( std::meta::info r );
|
(seit C++26) | |
Gibt die Ausrichtungsanforderung des durch r dargestellten Typs oder (Unter)Objekts zurück.
Parameter
| r | - | ein Reflexionswert |
Rückgabewert
Wenn r einen Typ „Referenz auf T“ darstellt, wird alignof(T*) zurückgegeben.
Andernfalls, wenn r einen Typ U darstellt, wird alignof(U) zurückgegeben.
Andernfalls, wenn r eine Variable oder ein Objekt darstellt, wird die Ausrichtungsanforderung der Variable oder des Objekts zurückgegeben.
Andernfalls, wenn r eine direkte Basisklassenbeziehung darstellt, wird die Ausrichtungsanforderung der Basisklasse zurückgegeben (d.h. std::meta::alignment_of(std::meta::type_of(r))).
Andernfalls, wenn r ein nicht-statisches Datenelement M einer Klasse C darstellt, wird die Ausrichtungsanforderung des entsprechenden direkten Mitglieds-Unterobjekts eines vollständigen Objekts vom Typ C zurückgegeben.
Andernfalls, wenn r eine Datenelementbeschreibung darstellt, wird ihr Ausrichtungswert zurückgegeben, falls nicht ⊥, oder andernfalls std::meta::alignment_of(std::meta::type_of(r)).
Ausnahmen
Wirft std::meta::exception, sofern nicht alle der folgenden Bedingungen erfüllt sind:
std::meta::dealias(r)stellt eines der folgenden dar:
- Typ
- Objekt
- Variable von Nicht-Referenztyp
- nicht-statisches Datenelement, das kein Bitfeld ist
- direkte Basisklassenbeziehung
- Datenelementbeschreibung deren Bitbreite ⊥ ist
- Wenn
std::meta::dealias(r)einen Typ darstellt, iststd::meta::is_complete_type(r)true.
Hinweise
Diese Funktion behandelt „Referenz auf T“ genauso wie „Zeiger auf T“. Dies entspricht der Darstellung von nicht-statischen Referenzmitgliedern.
Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
Siehe auch
alignof (C++11)
|
fragt die Ausrichtungsanforderungen eines Typs ab (Operator) |