>Is this invalid C++ code ?
Yes, this is invalid C++ code.
>If yes is there a way to make it valid and compilable under Linux ?
Take the typedef out of the anonymous struct. --or-- Name the anonymous struct so it is no longer anonymous.
I favor the second.
HTH, --Eljay