Namespaces
Variants

std::meta::object_of

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

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

Принимает отражение переменной, возвращает отражение объекта, на который ссылается переменная.

Если r представляет объект, возвращает r.

Параметры

r - отражение переменной или статического объекта

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

Отражение объекта, на который ссылается то, что представляет r.

Исключения

Генерирует std::meta::exception, если r не представляет одно из следующего:

  • объект со статической длительностью хранения;
  • переменная объектного типа со статической длительностью хранения;
  • переменная ссылочного типа, которая ссылается на объект со статической длительностью хранения, и либо:
  • ссылка может использоваться в константном выражении, либо
  • время жизни ссылки началось в рамках константного выражения ядра, которое в данный момент вычисляется.

Пример

#include <meta>

int x;
int& y = x;

// x and y are different variables:
static_assert(^^x != ^^y);

// x and y refer to the same object:
static_assert(std::meta::object_of(^^x) == std::meta::object_of(^^y));

int main() {}

См. также

возвращает отражение, представляющее объект, пригодное для использования в качестве постоянного аргумента шаблона
(шаблон функции)