Namespaces
Variants

std::meta::object_of

ja.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() {}

関連項目

定数テンプレート引数として使用するのに適した、オブジェクトを表すリフレクションを返します
(関数テンプレート)