std::meta::has_static_storage_duration, std::meta::has_thread_storage_duration, std::meta::has_automatic_storage_duration
Von de.cppreference.net
| 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.
Diesen Code ausführen
#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) |