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