std::meta::annotations_of_with_type
来自 zh.cppreference.net
| 定义于头文件 <meta>
|
||
consteval std::vector<std::meta::info>
annotations_of_with_type( std::meta::info item, std::meta::info type );
|
(C++26 起) | |
返回 std::meta::annotations_of(item) 的结果,该结果根据 type 所表示的类型进行过滤。
参数
| item | - | 一个反射值 |
| type | - | 类型或类型别名的反射 |
返回值
一个向量,包含 e 中每个 std::meta::annotations_of(item) 等于 std::meta::remove_const(std::meta::type_of(e)) 的元素 std::meta::remove_const(type),并保持其顺序。
异常
抛出 std::meta::exception,如果 std::meta::annotations_of(item) 会抛出异常,或者
std::meta::dealias(type)不表示一个类型,或std::meta::is_complete_type(type)是false。
示例
运行此代码
#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) |
获取被反射实体的类型的反射 (函数) |