This legal code :
===
struct A {
typedef int B;
};
typedef A C;
C::B i;
===
is not supported by the standard grammar.
"C::" is a nested-name-specifier and then "C" a
class-or-namespace-name.
But here, it is a typedef name !
I think the grammar should be this :
class-or-namespace-name:
class-name
namespace-name
typedef-name
--
Valentin David
valentin(a)lrde.epita.fr