Spec-Zone.ru › C++

std::meta::parameters_of

Определено в заголовке <meta>
consteval std::vector<std::meta::info> parameters_of( std::meta::info r );
(начиная с C++26)

Если r представляет функцию, возвращает вектор, содержащий отражения её параметров. Если r представляет тип функции, возвращает вектор, содержащий отражения её типов параметров.

В обоих случаях элементы вектора расположены в том же порядке, в котором указаны параметры.

Параметры

r - отражение, представляющее функцию или тип функции

Возвращаемое значение

std::vector отражений.

Исключения

Выбрасывает std::meta::exception, если r не представляет функцию или тип функции.

Примечания

Для отражения параметра функции можно запросить тип параметра, идентификатор (если есть) и список аннотаций. Чтобы получить значение переменной-параметра внутри тела функции, см. std::meta::variable_of.

Тип параметра (возвращаемый std::meta::type_of) не имеет cv-квалификаторов, что может отличаться от типа соответствующей переменной:

void f(const int x)
{
    constexpr auto rp = std::meta::parameters_of(^^f)[0];
    static_assert(std::meta::type_of(rp) == ^^int);

    constexpr auto rv = std::meta::variable_of(rp);
    static_assert(&[:rv:] == &x);
    static_assert(std::meta::type_of(rv) == ^^const int);
}

Пример

См. также

variable_of
(C++26)
получает переменную, соответствующую отражённому параметру функции в её определении
(функция)
return_type_of
(C++26)
получает тип возвращаемого значения отражённой функции
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/parameters_of

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API