Spec-Zone.ru › C++

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

Определено в заголовочном файле <meta>
consteval bool has_static_storage_duration( std::meta::info r );
(1) (начиная с C++26)
consteval bool has_thread_storage_duration( std::meta::info r );
(2) (начиная с C++26)
consteval bool has_automatic_storage_duration( std::meta::info r );
(3) (начиная с C++26)

Определяет, представляет ли r объект или переменную с указанной длительностью хранения.

1) Возвращает true, если r представляет объект или переменную со статической длительностью хранения; в противном случае возвращает false.
2) Возвращает true, если r представляет переменную с длительностью хранения потока; в противном случае возвращает false.
3) Возвращает true, если r представляет переменную с автоматической длительностью хранения; в противном случае возвращает false.

Параметры

r - значение отражения

Возвращаемое значение

true, если то, что представляет r, имеет указанную длительность хранения; в противном случае false.

Примечания

Если r не представляет объект или переменную, результатом является false.

Пример

Предварительный просмотр доступен в 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));
}

См. также

has_internal_linkagehas_module_linkagehas_external_linkagehas_linkage
(C++26)(C++26)(C++26)(C++26)
проверяет, имеет ли отражённая сущность связывание
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/has_storage_duration

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API