Skip to content

Commit 1bd58d9

Browse files
committed
has_inaccesible_bases : 例が正しくなかったのを修正
1 parent 643d7a1 commit 1bd58d9

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

reference/meta/has_inaccessible_bases.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff 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
3336
int 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

0 commit comments

Comments
 (0)