最終更新日時: 2026年05月07日 12時33分06秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<meta>

# std::meta::current_class(C++26)

    namespace std::meta {
      consteval info current_class();
    }

## 概要

`current_class()`を呼び出した時点で直接囲んでいるクラス（またはメンバ関数の所属するクラス）のリフレクションを返す。

## 戻り値

呼び出し位置を囲んでいるクラスのリフレクションを返す。メンバ関数内から呼ばれた場合は、そのメンバ関数が所属するクラスのリフレクションを返す。

## 例外

クラス（またはメンバ関数）の文脈で呼ばれていない場合、`std::meta::exception` 例外を送出する。

## 例

    #include <meta>
    #include <print>

    class MyClass {
    public:
      static void info() {
        constexpr auto cls = std::meta::current_class();
        std::println("クラス名: {}", std::meta::identifier_of(cls));
      }
    };

    int main() {
      MyClass::info();
    }

#### 出力例

    クラス名: MyClass

## バージョン

### 言語

- C++26

### 処理系

- Clang: ??
- GCC: 16 (`-freflection` オプション指定) ✅
- Visual C++: ??

## 関連項目

- `current_function`
- `current_namespace`

## 参照

- P3795R2 Miscellaneous Reflection Cleanup