Старый знакомый:
typedef int cute_int; //cute : common and familiar syntax.
Этот синтаксис совершенен. Нет проблем.
Теперь, когда мы можем писать typedefs, как указано выше, то в чем смысл этого синтаксиса:
int typedef crazy_int; //crazy : uncommon and unfamiliar syntax.
Просто чтобы запутать программистов? Является ли этот синтаксис даже необходимым (когда на самом деле у нас есть предыдущий)? Как вы думаете, с точки зрения компиляторов? Они находят это симпатичным или сумасшедшим? Или это вообще не имеет значения для компиляторов?
Кстати, этот код появился здесь: Использование ключевого слова typename с typedef и new
Если вам интересно, является ли это синтаксической ошибкой, посмотрите рабочий код здесь на ideone.