Namespaces
Variants

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

Von de.cppreference.net
< cpp | meta
 
 
 
Reflexionsbibliothek
 
Reflexionstypen und -abfragen
Reflexionsabfragen
Reflexionslayoutabfragen
Typeigenschaften
Typabfragen zu Eigenschaften
 
Definiert in Header <meta>
consteval bool has_static_storage_duration( std::meta::info r );
(1) (seit C++26)
consteval bool has_thread_storage_duration( std::meta::info r );
(2) (seit C++26)
consteval bool has_automatic_storage_duration( std::meta::info r );
(3) (seit C++26)

Bestimmt, ob r ein Objekt oder eine Variable mit der angegebenen Speicherdauer darstellt.

1) Gibt true zurück, wenn r ein Objekt oder eine Variable mit statischer Speicherdauer darstellt; andernfalls gibt false zurück.
2) Gibt true zurück, wenn r eine Variable mit Thread-Speicherdauer darstellt; andernfalls gibt false zurück.
3) Gibt true zurück, wenn r eine Variable mit automatischer Speicherdauer darstellt; andernfalls gibt false zurück.

Parameter

r - ein Reflexionswert

Rückgabewert

true wenn das, was r darstellt, die angegebene Speicherdauer hat; andernfalls false.

Hinweise

Wenn r kein Objekt oder keine Variable darstellt, ist das Ergebnis false.

Beispiel

Kann auf Compiler Explorer ausprobiert werden.

#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));
}

Siehe auch

prüft, ob die reflektierte Entität eine Bindung
hat(Funktion)