using handler_t = void (*)(int); extern handler_t ignore; extern void (*ignore)(int); // redeclare ignore using cell = pair<void*, cell*>; // ill-formed
typedef struct s { /* ... */ } s;
typedef int I;
typedef int I;
typedef I I;
struct S { typedef struct A { } A; // OK typedef struct B B; // OK typedef A A; // error };
struct S; typedef struct S S; int main() { struct S* p; // OK } struct S { }; // OK
struct S { S(); ~S(); }; typedef struct S T; S a = T(); // OK struct T * p; // error