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.