У меня возникают проблемы с определением внутреннего класса за пределами класса, в котором он объявлен.Двухуровневый класс C++ работает с GCC, но не работает с Clang
struct Base {
struct A {
struct B;
};
struct A::B {
};
};
Он собирает и работает с GCC, но не на Clang с этой ошибкой:
innerclass.cpp:6:12: error: non-friend class member 'B' cannot have a qualified name
struct A::B {
~~~^
Если внешний класс Base опущен код работает на Clang.
Нельзя ли таким образом определить внутренний класс? Если да, то как это сделать?
Платформа:
OS X 10.8.3
XCode 4.6.2
Clang компании Apple LLVM версии 4.2 (лязг-425.0.24) (на основе LLVM 3.2svn)
GCC GCC версии 4.2.1 (на основе на Apple Inc. build 5658) (LLVM build 2336.11.00)