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

履歴 編集

function
<meta>

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

    namespace std::meta {
      consteval std::source_location source_location_of(info r);
    }

## 概要

リフレクションのソース位置を取得する。

任意のリフレクションを受け取れる。

## 戻り値

`r`が表すエンティティが宣言されたソース位置を`std::source_location`として返す。

ただし、以下のリフレクションに対してはデフォルト構築された`source_location`（ソース位置情報なし）を返す：

- 値
- クラス型・列挙型以外の型
- グローバル名前空間
- データメンバ仕様

それ以外のリフレクションに対する戻り値は実装定義である。

## 例

    #include <meta>
    #include <print>

    struct MyClass {};

    int main() {
      constexpr auto loc = std::meta::source_location_of(^^MyClass);
      std::println("{}:{}", loc.file_name(), loc.line());
    }

#### 出力例

    main.cpp:38

## バージョン

### 言語

- C++26

### 処理系

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

## 参照

- P2996R13 Reflection for C++26