Namespaces
Variants

std::define_static_object

De fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
 
Types de réflexion et requêtes
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>
template< class T >
consteval const remove_cvref_t<T>* define_static_object( T&& t );
(depuis C++26)

Propage la valeur vers le stockage statique.

Équivalent à :

using U = std::remove_cvref_t<T>;
if constexpr (std::meta::is_class_type(^^U) || std::meta::is_union_type(^^U))
{
    std::meta::info obj = std::meta::reflect_constant(std::forward<T>(t));
    return std::addressof(std::meta::extract<const U&>(obj));
}
else if constexpr (std::meta::is_array_type(^^U))
{
    std::meta::info obj = std::meta::reflect_constant_array(std::forward<T>(t));
    return std::addressof(std::meta::extract<const U&>(obj));
}
else
{
    return std::define_static_array(std::span(std::addressof(t), 1)).data();
}

Paramètres

t - une valeur de type structurel

Valeur de retour

Un pointeur vers l'objet paramètre de modèle avec la valeur t.

Notes

En tant qu'objet paramètre de modèle, l'objet résultant a une durée de stockage statique. Les valeurs équivalentes aux arguments de modèle correspondent au même objet.

L'objet résultant est un objet potentiellement non unique si std::remove_cvref_t<T> est un type scalaire.

Si t est un objet paramètre de modèle, le résultat pointe vers le même objet.

Test de fonctionnalité macro Valeur Std Fonctionnalité
__cpp_lib_define_static 202506L (C++26) std::define_static_object

Exemple

Voir aussi

transforme un tableau de compilation en stockage statique, renvoyant une span du tableau statique
(modèle de fonction)
transforme une chaîne de compilation en stockage statique, renvoyant un pointeur vers le premier caractère de 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)