std::define_static_object
De fr.cppreference.net
| 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
| Cette section est incomplète Raison : pas d'exemple |
Voir aussi
(C++26) |
transforme un tableau de compilation en stockage statique, renvoyant une span du tableau statique (modèle de fonction) |
(C++26) |
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) |
(C++26) |
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) |