clang和g ++都没有编译下面的代码片段。为什么?

时间:2016-12-20 13:29:12

标签: c++ language-lawyer c++17 member-access

clangg++都不会编译this snippet

struct A{
protected:    
    struct B{};
};

struct D: A::B, A{};

根据[class.access]/7,我们有:

  

类似地,使用A :: B作为基本说明符是因为   D是从A派生的,因此必须推迟检查基本说明符   直到看到整个base-specifier-list。

上面的例子和句子是[class.access] / 7的一部分,至少从C ++ 11开始。

0 个答案:

没有答案