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