【发布时间】:2013-05-26 12:01:01
【问题描述】:
在声明它的类之外定义内部类时遇到问题。
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 (clang-425.0.24)(基于 LLVM 3.2svn)
GCC gcc 版本 4.2.1(基于 Apple Inc. build 5658)(LLVM build 2336.11.00)
【问题讨论】:
标签: c++ macos clang nested-class