相关疑难解决方法(0)

也许我对[class.access]/7的理解不正确,但是

从[class.access]/7我们得到以下句子:

类似地,A::B作为基本说明符的使用是良好形成的,因为它D是派生自的A,因此必须推迟对基本说明符 s的检查,直到看到整个基本说明符列表.

class A {
protected:
    struct B { };
};
struct D: A::B, A { };
Run Code Online (Sandbox Code Playgroud)

查看clang的实例.事实上,clang还抱怨这个片段,不需要延期.

class A {
protected:
    struct B { };
};
struct D: A, A::B { };
Run Code Online (Sandbox Code Playgroud)

为什么这段代码不能编译?

PS:gcc和VS21013也不编译代码.

c++ protected derived-class language-lawyer c++14

10
推荐指数
1
解决办法
275
查看次数

标签 统计

c++ ×1

c++14 ×1

derived-class ×1

language-lawyer ×1

protected ×1