Namespaces
Variants

std::meta::variable_of

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

Основные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы и запросы рефлексии
Запросы рефлексии
Запросы компоновки рефлексии
Свойства типов
Запросы свойств типов
 
Определён в заголовке <meta>
consteval std::meta::info variable_of( std::meta::info r );
(начиная с C++26)

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

Значение параметра

r - отражение, представляющее параметр функции (т.е. элемент std::meta::parameters_of(rf), где rf представляет функцию)

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

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

Исключения

Выбрасывает std::meta::exception, если не выполняется следующее:

  • r представляет параметр функции F, и
  • вызов variable_of является частью вычисления тела функции F.

Пример

#include <meta>
#include <print>

void f(int int_arg)
{
    constexpr auto rp = std::meta::parameters_of(^^f)[0];
    // const int& x = [:rp:];  // error: cannot splice the reflection of a parameter
    const int& x = [:std::meta::variable_of(rp):]; // OK, x refers to int_arg

    std::println("{}", x);
}

int main()
{
    f(42);
}

Вывод:

42

Смотрите также

получает параметры отражённой функции
(функция)