std::meta::identifier_of, std::meta::u8identifier_of
来自cppreference.com
| 在标头 <meta> 定义
|
||
| |
(1) | (C++26 起) |
| |
(2) | (C++26 起) |
返回与 r 所表示事物关联的标识符。
1) 结果是一个以普通字面量编码的字符串。
2) 结果是一个 UTF-8 字符串。
结果字符串按如下方式确定:
- 如果
r表示具有以链接为目的的 typedef 名的实体,则返回该名称。 - 否则,如果
r表示字面量运算符或字面量运算符模板,则返回其字面量后缀标识符。 - 否则,如果
r表示函数F的形参P,则设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::has_identifier(r) 为 true 且结果字符串在相应编码中可表示,否则抛出 std::meta::exception。
注解
结果 V 是以空字符结尾的:V.data()[V.size()] 保证为 '\0'。V 中的每个元素都是一个具有静态存储期的可能非唯一的对象,可在常量表达式中使用;指向此类元素的指针不适合用作指针类型的非类型模板形参的模板实参。
示例
| 本节未完成 原因:暂无示例 |
参阅
(C++26) |
检查反射是否表示带有标识符的实体 (函数) |