Рассмотрим следующий код:
class A {
class B {};
};
template <typename C>
class D : A::B {};
void f() {
D<int> d;
}
D<int>
наследует от A::B
, который является частным вложенным классом. Я ожидал, что это будет ошибка, но GCC принимает этот код. Это ошибка в GCC или я что-то не хватает?