namespace std::meta {
consteval bool has_parent(info r);
}
概要
リフレクションが親スコープを持つかどうかを判定する。
戻り値
rについて、以下の順に判定する:
- グローバル名前空間を表す場合、
falseを返す - C言語リンケージを持つエンティティを表す場合、
falseを返す - C++以外のリンケージを持つエンティティを表す場合、実装定義
- クラス型でも列挙型でもない型を表す場合、
falseを返す - それ以外で、エンティティまたは直接基底クラス関係を表す場合、
trueを返す - それ以外の場合、
falseを返す
例
#include <meta>
namespace ns {
struct S {};
}
int main() {
static_assert(std::meta::has_parent(^^ns::S));
static_assert(std::meta::parent_of(^^ns::S) == ^^ns);
}
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??