That's a C99 compound literal, not valid C++. It won't compile on a compiler that doesn't support compound literals, like MSVC. It also won't compile on GCC if you compile with -std=c++03 -pedantic...