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));
}
См. также
|
(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