【发布时间】:2012-12-11 23:14:18
【问题描述】:
考虑以下代码:
class A {
class B {};
};
template <typename C>
class D : A::B {};
void f() {
D<int> d;
}
D<int> 继承自 A::B,这是一个私有嵌套类。我原以为这是一个错误,但 GCC 接受此代码。这是 GCC 中的错误还是我遗漏了什么?
【问题讨论】:
-
看起来像一个错误,因为删除模板声明会导致预期的错误。
-
Visual Studio 2012 不想编译该代码。
标签: c++ gcc g++ nested-class private-members