我有以下C++代码:
class A {
protected:
struct Nested {
int x;
};
};
class B: public A {
friend class C;
};
class C {
void m1() {
B::Nested n; // or A::Nested
}
};
Run Code Online (Sandbox Code Playgroud)
使用g ++ 4.4编译这个片段,无论我在m1中使用B :: Nested还是A :: Nested,都没有区别.Clang接受B::Nested
,但如果我不编译A::Nested
.这是g ++或clang中的错误吗?