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
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??