Listing 8 The example from the ARM limiting the context sensitivity of class member declarations.

typedef int c;
enum{ i = 1 };

class X
       {
       char v[i];
       int f() { return sizeof(c); }
       char c;             // error: typedef name 'c'
                        // redefined after use
       enum { i = 2; };    // error: constant 'i'
                        // redefined after use
       };
       
typeder char *T;

struct Y
       {
       T a;
       typedef long T;     // error: T already defined
       T b;
       };
// End of File