最終更新日時(UTC):
が更新

履歴 編集

function
<meta>

std::meta::current_namespace(C++26)

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

概要

current_namespace()を呼び出した時点で囲んでいる名前空間のリフレクションを返す。

戻り値

呼び出し位置を囲んでいる名前空間のリフレクションを返す。名前空間スコープ外から呼ばれた場合は、もっとも近い囲んでいる名前空間(最終的にはグローバル名前空間)のリフレクションを返す。

#include <meta>
#include <print>

namespace my_ns {
  void info_in_ns() {
    constexpr auto ns = std::meta::current_namespace();
    std::println("my_ns内: {}", std::meta::display_string_of(ns));
  }
}

void info_global() {
  constexpr auto ns = std::meta::current_namespace();
  std::println("グローバル: {}", std::meta::display_string_of(ns));
  // グローバル名前空間のリフレクションは ^^:: と等しい
  static_assert(ns == ^^::);
}

int main() {
  my_ns::info_in_ns();
  info_global();
}

出力例

my_ns内: my_ns
グローバル: ::

バージョン

言語

  • C++26

処理系

関連項目

参照