This legal code :
===
struct A {
typedef int B;
};
typedef A C;
C::B i;
===
is not supported by the standard grammar.
Je comprends pas : tu dis "legal" et "not supported by the standard
grammar". Pourtant pour moi c'est équivalent, non ?
"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