Namespaces
Variants

std::meta::has_static_storage_duration, std::meta::has_thread_storage_duration, std::meta::has_automatic_storage_duration

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>
consteval bool has_static_storage_duration( std::meta::info r );
(1) (depuis C++26)
consteval bool has_thread_storage_duration( std::meta::info r );
(2) (depuis C++26)
consteval bool has_automatic_storage_duration( std::meta::info r );
(3) (depuis C++26)

Détermine si r représente un objet ou une variable avec la durée de stockage spécifiée.

1) Renvoie true si r représente un objet ou une variable avec une durée de stockage statique ; sinon renvoie false.
2) Renvoie true si r représente une variable avec une durée de stockage thread ; sinon renvoie false.
3) Renvoie true si r représente une variable avec une durée de stockage automatique ; sinon renvoie false.

Paramètres

r - une valeur de réflexion

Valeur de retour

true si ce que r représente a la durée de stockage spécifiée ; sinon false.

Notes

Si r ne représente pas un objet ou une variable, le résultat est false.

Exemple

Peut être prévisualisé sur Compiler Explorer.

#include <meta>

int a;
static_assert(std::meta::has_static_storage_duration(^^a));
static_assert(!std::meta::has_thread_storage_duration(^^a));
static_assert(!std::meta::has_automatic_storage_duration(^^a));

thread_local int b;
static_assert(!std::meta::has_static_storage_duration(^^b));
static_assert(std::meta::has_thread_storage_duration(^^b));
static_assert(!std::meta::has_automatic_storage_duration(^^b));

int main()
{
    [[maybe_unused]] int c;
    static_assert(!std::meta::has_static_storage_duration(^^c));
    static_assert(!std::meta::has_thread_storage_duration(^^c));
    static_assert(std::meta::has_automatic_storage_duration(^^c));
}

Voir aussi

vérifie si l'entité réfléchie a un lien
(fonction)