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

履歴 編集

function
<meta>

std::meta::access_context::unchecked(C++26)

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

処理系

参照