Namespaces
Variants

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

De es.cppreference.net
< cpp | meta
 
 
 
Biblioteca de reflexión
 
Tipos y consultas de reflexión
Consultas de reflexión
Consultas de diseño de reflexión
Propiedades de tipo
Consultas de propiedades de tipo
 
Definido en el encabezado <meta>
consteval bool has_static_storage_duration( std::meta::info r );
(1) (desde C++26)
consteval bool has_thread_storage_duration( std::meta::info r );
(2) (desde C++26)
consteval bool has_automatic_storage_duration( std::meta::info r );
(3) (desde C++26)

Determina si r representa un objeto o variable con la duración de almacenamiento especificada.

1) Devuelve true si r representa un objeto o variable con duración de almacenamiento estático; en caso contrario, devuelve false.
2) Devuelve true si r representa una variable con duración de almacenamiento de hilo; en caso contrario, devuelve false.
3) Devuelve true si r representa una variable con duración de almacenamiento automático; en caso contrario, devuelve false.

Parámetros

r - un valor de reflexión

Valor de retorno

true si lo que r representa tiene la duración de almacenamiento especificada; en caso contrario, false.

Notas

Si r no representa un objeto o variable, el resultado es false.

Ejemplo

Puede previsualizarse en 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));
}

Véase también

comprueba si la entidad reflejada tiene un enlace
(función)