Видимость внутреннего класса шаблона

Код ниже

class X
{
    template<class>
    class A{};
};

int main()
{
    X::A<int> a;
}

компилируется в gcc (gcc 6.1), но завершается с ошибкой в ​​clang с ошибкой

ошибка: 'A' является частным членом 'X'

Есть ли какая-то тонкая вещь, которая делает этот код действительным? На мой взгляд, он не должен компилироваться, поэтому, вероятно, это ошибка gcc. Требуется ли диагностика?

0 ответов

Другие вопросы по тегам