std::meta::annotations_of_with_type
Определён в заголовке <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) | определяет тип отражённой сущности (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/annotations_of_with_type