Spec-Zone.ru › C++

std::meta::object_of

Определено в заголовочном файле <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() {}

См. также

reflect_object
(C++26)
возвращает рефлексию, представляющую объект и подходящую для использования в качестве аргумента шаблона-константы
(шаблон функции)

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

Spec-Zone.ru

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