C++ Standard 2003 четко оговаривает лишь этот код, как некорректный:
struct S { int x; };
typedef S T;
struct T* s;
Является ли следующий пример кода корректным с тояки зрения стандарта?
typedef int A;
long A a;
Места в стандарте, где этот пример четко оговаривается я так и не нашел. Например, компилятор Microsoft Visual Studio 2005 считает его ошибочным. Если не трудно, прошу указать место в стандарте, где этот случай прямо или косвенно поясняется.

Заранее благодарен.