File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -24,17 +24,26 @@ namespace std::meta {
2424```cpp example
2525#include <meta>
2626
27- class C {
28- int secret;
29- public:
30- int visible;
31- };
27+ struct Base1 {};
28+ struct Base2 {};
29+
30+ // Base1はprivate継承、Base2はpublic継承
31+ class Derived : private Base1, public Base2 {};
32+
33+ // すべての基底クラスがpublic
34+ class PublicDerived : public Base1, public Base2 {};
3235
3336int main() {
3437 constexpr auto ctx = std::meta::access_context::unprivileged();
35- static_assert(std::meta::has_inaccessible_bases(^^C, ctx));
38+
39+ // Derivedにはprivate基底Base1があるため、外部からはアクセス不可
40+ static_assert(std::meta::has_inaccessible_bases(^^Derived, ctx));
41+
42+ // PublicDerivedはすべての基底クラスがpublic
43+ static_assert(!std::meta::has_inaccessible_bases(^^PublicDerived, ctx));
3644}
3745```
46+ * std::meta::has_inaccessible_bases[ color ff0000]
3847* std::meta::access_context[ link access_context.md]
3948* unprivileged[ link access_context/unprivileged.md]
4049
You can’t perform that action at this time.
0 commit comments