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