Ответ 1
Стандарт С++ 14 говорит в 14p1:
Объявление в объявлении шаблона должно быть - объявить или определить функцию, класс или переменную, или
- определить функцию-член, класс-член, перечисление элемента или статический элемент данных шаблона класса или класса, вложенного в шаблон класса, или
- определить шаблон элемента шаблона класса или класса, или
- быть объявлением alias
Здесь объявление в объявлении шаблона не является ничем из вышеперечисленного (это другое объявление-шаблон, которое содержит декларацию alias), поэтому код недействителен.
Соответствующие части грамматики:
шаблон-декларация:
шаблон < template-parameter-list > объявление
псевдоним декларации:
с использованием идентификатора атрибута-спецификатора-seq opt= type-id;
где объявление может быть объявлением шаблона, декларацией псевдонима или другими типами объявлений.
Обратите внимание, что сама грамматика принимает данный код, но дополнительные ограничения в тексте выше делают его недействительным.