std::meta::has_static_storage_duration, std::meta::has_thread_storage_duration, std::meta::has_automatic_storage_duration
De es.cppreference.net
| 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.
Ejecutar este código
#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) |