既不clang
也不g++
编译这个片段:
struct A{
protected:
struct B{};
};
struct D: A::B, A{};
根据[class.access]/7,我们有:
类似地,使用 A::B 作为基本说明符是格式正确的,因为 D 是从 A 派生的,因此必须推迟对基本说明符的检查,直到看到整个基本说明符列表。
上面的例子和句子是 [class.access]/7 的一部分,至少从 C++11 开始。
既不clang
也不g++
编译这个片段:
struct A{
protected:
struct B{};
};
struct D: A::B, A{};
根据[class.access]/7,我们有:
类似地,使用 A::B 作为基本说明符是格式正确的,因为 D 是从 A 派生的,因此必须推迟对基本说明符的检查,直到看到整个基本说明符列表。
上面的例子和句子是 [class.access]/7 的一部分,至少从 C++11 开始。