Вот код:
template <typename T>
struct A
{
template <typename U>
struct B;
};
template <typename T> template <> // 0_o
struct A<T>::B<int> {};
Я знаю, что не могу этого сделать, но мне больше интересно знать логически. Почему я не могу специализировать вложенный элемент шаблона, не специализируясь сначала на закрытии шаблона класса?
Я ценю любую помощь с логическим объяснением:)
Изменить:
Андрей Александреску ответил: "Нет особой причины - это просто языковое правило".