- meta[meta header]
- std::meta[meta namespace]
- access_context[meta class]
- function[meta id-type]
- cpp26[meta cpp]
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));
}
}- std::meta::access_context::unchecked()[color ff0000]
- std::meta::nonstatic_data_members_of[link ../nonstatic_data_members_of.md]
- std::meta::identifier_of[link ../identifier_of.md]
全メンバ:
secret
prot
visible
- C++26
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) [mark verified] - Visual C++: ??