Namespaces
Variants

std::meta::reflect_constant_array

De fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
Catégories de types primaires
Catégories de types composites
Propriétés de type ➜
Relations entre types
 
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é de type
 
Défini dans l'en-tête <meta>
template< ranges::input_range R >
consteval std::meta::info reflect_constant_array( R&& r );
(depuis C++26)

Renvoie une réflexion qui représente un objet tableau dont les éléments sont les éléments correspondants de r.

L'objet résultant est un objet paramètre de modèle : il a une durée de stockage statique, et les plages avec des contenus équivalents aux arguments de modèle correspondent au même objet.

Si la taille de r n'est pas nulle, l'objet tableau résultant est un objet potentiellement non unique.

Soit U comme ranges::range_value_t<R> et T comme std::remove_all_extents_t<U>.

Le programme est mal formé si l'une des conditions suivantes est vraie :

  • T n'est pas un type structurel.
  • T ne satisfait pas copy_constructible.
  • U n'est pas un type tableau, et std::is_constructible_v<T, ranges::range_reference_t<R>> est faux.

Paramètres

r - une input_range

Valeur de retour

Si la taille de r n'est pas nulle, une réflexion qui représente un objet paramètre de modèle de type const T[N] (où N est la taille de r). Chaque élément de l'objet paramètre de modèle est équivalent à un argument de modèle à :

  • std::meta::reflect_constant_array(*it) si U est un type tableau ;
  • std::meta::reflect_constant(static_cast<T>(*it)) sinon ;

où it est un itérateur vers l'élément correspondant de r.

Sinon (la taille de r est nulle), une réflexion qui représente l'objet paramètre de modèle de type const std::array<T, 0> initialisé avec {}.

Exceptions

Lève toute exception levée par :

  • une opération sur r ou sur les itérateurs ou sentinelles de r ;
  • tout argument de std::meta::reflect_constant ou tout appel de std::meta::reflect_constant_array décrit ci-dessus.

Lève std::meta::exception si toute invocation de std::meta::reflect_constant se terminerait par une exception.

Notes

Le résultat de std::meta::reflect_constant_array convient à une utilisation avec std::meta::substitute. Si l'appelant souhaite obtenir un std::span d'un tableau statique, par opposition à une valeur de réflexion, std::define_static_array est généralement plus approprié.

Exemple

Voir aussi

promeut un tableau à la compilation en stockage statique, renvoyant un span du tableau statique
(modèle de fonction)
promeut une chaîne à la compilation en stockage statique, renvoyant une réflexion représentant la chaîne statique
(modèle de fonction)
renvoie une réflexion représentant une valeur ou un objet paramètre de modèle, adapté à une utilisation comme argument de modèle constant
(modèle de fonction)