Namespaces
Variants

std::meta::alignment_of

De fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
 
Types et requêtes de réflexion
Requêtes de réflexion
Requêtes de disposition de réflexion
Propriétés de type
Requêtes de propriétés de type
 
Défini dans l'en-tête <meta>
consteval std::size_t alignment_of( std::meta::info r );
(depuis C++26)

Renvoie l'exigence d'alignement du type ou (sous-)objet représenté par r.

Paramètres

r - une valeur de réflexion

Valeur de retour

Si r représente un type « référence à T », renvoie alignof(T*).

Sinon, si r représente un type U, renvoie alignof(U).

Sinon, si r représente une variable ou un objet, renvoie l'exigence d'alignement de la variable ou de l'objet.

Sinon, si r représente une relation de classe de base directe, renvoie l'exigence d'alignement de la classe de base (c.-à-d. std::meta::alignment_of(std::meta::type_of(r))).

Sinon, si r représente un membre de données non statique M d'une classe C, renvoie l'exigence d'alignement du sous-objet membre direct correspondant d'un objet complet de type C.

Sinon, r représente une description de membre de données, renvoie sa valeur d'alignement si elle n'est pas ⊥, ou std::meta::alignment_of(std::meta::type_of(r)) sinon.

Exceptions

Lève std::meta::exception sauf si toutes les conditions suivantes sont remplies :

  • std::meta::dealias(r) représente l'un des éléments suivants :
  • Si std::meta::dealias(r) représente un type, std::meta::is_complete_type(r) est true.

Notes

Cette fonction traite « référence à T » de la même manière que « pointeur vers T ». Cela correspond à la représentation des membres de référence non statiques.

Exemple

Voir aussi

alignof (C++11) interroge les exigences d'alignement d'un type
(operator)