std::meta::标识符_of, std::meta::u8标识符_of
来自 zh.cppreference.net
| 定义于头文件 <meta>
|
||
consteval std::string_view identifier_of( std::meta::info r );
|
(1) | (C++26 起) |
consteval std::u8string_view u8identifier_of( std::meta::info r );
|
(2) | (C++26 起) |
返回与 r 所表示的内容关联的标识符。
1) 结果是以普通字面量编码的字符串。
2) 结果是 UTF-8 字符串。
结果字符串确定如下:
- 如果
r表示一个具有 用于链接目的的 typedef 名称的实体,则返回该名称。 - 否则,如果
r表示一个 字面量运算符或字面量运算符模板,则返回其字面量后缀标识符。 - 否则,如果
r表示一个函数P的F函数参数,则令S为从求值上下文中某个点可达的一组声明(忽略任何显式实例化),这些声明声明了F或F所特化的一种模板函数,返回S中一个声明为与P对应的参数引入的名称。 - 否则,如果
r表示一个实体,返回其声明的名称。 - 否则,如果
r表示一个 直接基类关系,返回std::meta::identifier_of(std::meta::type_of(r))或std::meta::u8identifier_of(std::meta::type_of(r))。 - 否则,如果
r表示一个 数据成员描述 (T, N, A, W, NUA, ANN),返回该描述的名称 N。
参数
| r | - | 一个反射值 |
返回值
r 所表示内容的标识符,如上所述。
异常
抛出 std::meta::exception,除非 std::meta::has_identifier(r) 是 true 且结果字符串可在对应编码中表示。
注解
结果 V 以空字符结尾:V.data()[V.size()] 保证为 '\0'。V 中的每个元素是一个可能非唯一的具有静态存储期限的对象,可在常量表达式中使用;指向此类元素的指针不适合用作指针类型的非类型模板参数的模板实参。
示例
| 本节不完整 原因:无示例 |
参阅
(C++26) |
检查反射是否表示一个具有标识符的实体 (函数) |