std::meta::annotations_of_with_type
С ru.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) |
получает отражение типа отражённой сущности (функция) |