static consteval access_context unchecked() noexcept;
概要
アクセス制限なしですべてのメンバにアクセス可能なアクセスコンテキストを返す。
private/protectedメンバを含むすべてのメンバが取得可能となる。シリアライズやデバッグなど、アクセス制御を無視してすべてのメンバを列挙する必要がある場面で使用する。
戻り値
すべてのメンバにアクセス可能なaccess_contextオブジェクトを返す。
例
#include <meta>
#include <print>
class C {
int secret = 42;
protected:
int prot = 2;
public:
int visible = 1;
};
int main() {
std::println("全メンバ:");
template for (constexpr auto m :
std::define_static_array(std::meta::nonstatic_data_members_of(
^^C, std::meta::access_context::unchecked()))) {
std::println(" {}", std::meta::identifier_of(m));
}
}
出力
全メンバ:
secret
prot
visible
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??