Skip to content

Latest commit

 

History

History
68 lines (53 loc) · 1.43 KB

File metadata and controls

68 lines (53 loc) · 1.43 KB

is_protected

  • meta[meta header]
  • std::meta[meta namespace]
  • function[meta id-type]
  • cpp26[meta cpp]
namespace std::meta {
  consteval bool is_protected(info r);
}
  • info[link info.md]

概要

protectedアクセスであるかを判定する。

戻り値

rがクラスメンバまたは基底クラス関係を表し、かつprotectedアクセスである場合にtrueを返す。

#include <meta>

struct S {
  int pub;
protected:
  int prot;
private:
  int priv;
};

consteval bool check() {
  auto members = std::meta::nonstatic_data_members_of(
      ^^S, std::meta::access_context::unchecked());
  return std::meta::is_public(members[0])
      && std::meta::is_protected(members[1])
      && std::meta::is_private(members[2]);
}

int main() {
  static_assert(check());
}
  • std::meta::nonstatic_data_members_of[link nonstatic_data_members_of.md]
  • std::meta::is_public[link is_public.md]
  • std::meta::is_private[link is_private.md]
  • std::meta::access_context[link access_context.md]
  • unchecked[link access_context/unchecked.md]

出力

バージョン

言語

  • C++26

処理系

参照