std::meta::annotations_of_with_type
来自cppreference.com
| 在标头 <meta> 定义
|
||
| |
(C++26 起) | |
返回根据 type 所表示的类型过滤后的 std::meta::annotations_of(item) 的结果。
参数
| item | - | 一个反射值 |
| type | - | 类型或类型别名的反射 |
返回值
一个 vector,包含 std::meta::annotations_of(item) 中满足条件的所有元素 e:std::meta::remove_const(std::meta::type_of(e)) 等于 std::meta::remove_const(type),并保持原有顺序。
异常
如果 std::meta::annotations_of(item) 会抛出异常,或者满足以下任一条件,则抛出 std::meta::exception:
std::meta::dealias(type)不表示类型,或std::meta::is_complete_type(type)为false。
示例
Run this code
#include <meta>
struct Option { bool value; };
struct C {
[[=Option{true}]] int a;
[[=Option{false}]] int b;
};
static_assert([:annotations_of_with_type(^^C::a, ^^Option)[0]:].value);
static_assert(![:annotations_of_with_type(^^C::b, ^^Option)[0]:].value);
int main() {}
参阅
(C++26) |
获取应用于所反射实体的标注 (函数) |
(C++26) |
检查反射是否表示标注 (函数) |
(C++26) |
获取所反射实体的常量值的反射 (函数) |
(C++26) |
获取所反射实体的类型的反射 (函数) |