Namespaces
Variants

std::meta::alignment_of

Von de.cppreference.net
< cpp | meta
 
 
 
Reflexionsbibliothek
 
Reflexionstypen und -abfragen
Reflexionsabfragen
Reflexionslayoutabfragen
Typeigenschaften
Typ-Eigenschaftsabfragen
 
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:
  • Wenn std::meta::dealias(r) einen Typ darstellt, ist std::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

Siehe auch

alignof (C++11) fragt die Ausrichtungsanforderungen eines Typs ab
(Operator)