Видимость внутреннего класса шаблона
Код ниже
class X
{
template<class>
class A{};
};
int main()
{
X::A<int> a;
}
компилируется в gcc (gcc 6.1), но завершается с ошибкой в clang с ошибкой
ошибка: 'A' является частным членом 'X'
Есть ли какая-то тонкая вещь, которая делает этот код действительным? На мой взгляд, он не должен компилироваться, поэтому, вероятно, это ошибка gcc. Требуется ли диагностика?