Namespaces
Variants

std::meta::parameters_of

От ru.cppreference.net
< cpp | meta
 
 
 
Библиотека отражения
Запросы доступности членов
Идентификация области видимости
Запросы членов отражения
Отражение аннотаций
Извлечение значений
Подстановка отражения
Отражение результатов выражений
Генерация определения класса

Основные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы отражения и запросы
Запросы отражения
Запросы размещения отражения
Свойства типов
Запросы свойств типов
 
Определено в заголовке <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-unqualified, что может отличаться от типа соответствующей переменной:

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);
}

Пример

См. также

получает переменную отражённого параметра функции в определении функции
(функция)
получает тип возврата отражённой функции
(функция)