Spec-Zone.ru › C++

std::meta::variable_of

Объявлен в заголовке <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

См. также

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

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

Spec-Zone.ru

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