std::meta::has_static_storage_duration, std::meta::has_thread_storage_duration, std::meta::has_automatic_storage_duration
来自cppreference.com
| 在标头 <meta> 定义
|
||
| |
(1) | (C++26 起) |
| |
(2) | (C++26 起) |
| |
(3) | (C++26 起) |
判断 r 是否表示具有指定存储期的对象或变量。
参数
| r | - | 一个反射值 |
返回值
如果 r 所表示的内容具有指定的存储期,则为 true;否则为 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));
}
参阅
| 检查所反射实体是否具有链接 (函数) |