Unusual typedef use in C++

I came across a new use of the keyword typedef in C++.

What does this typedef statement mean ?

int typedef foo;

It's the same as

typedef int foo;

i.e. it defines foo to be the type int. While the grammar allows to swap typedef and int in this case, you usually would not do this because it impairs readability.


typedef is a decl-specifier, so it has the same syntax rules as const or static. It can be moved about like that and will mean the same thing.