std::meta::has_static_storage_duration, std::meta::has_thread_storage_duration, std::meta::has_automatic_storage_duration
De fr.cppreference.net
| 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.
Exécuter ce code
#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) |