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() {}
См. также
|
(C++26) | возвращает рефлексию, представляющую объект и подходящую для использования в качестве аргумента шаблона-константы (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/object_of