Visual Studio 2003 の奇妙なケースがあります。ある程度正当な理由から、次の階層があります。
class A {};
class B : public A {
public:
class A {};
};
class C : public B::A {};
つまり、外部クラスの親と同じ名前の内部クラスがあります。C
から継承しようとすると、 Visual Studio は、 内のネストされたクラスではなく、B::A
親クラスを指していると見なします。予想通り、GCCは内部クラスのバージョンに解決されるようですA
B
これは Visual Studio 2003 のバグですか、それとも間違っていますか? 回避策はありますか (Visual Studio のアップグレード以外)?