@sbi: I think no: could be wrong, but .. in C++ it isn't an anonymous struct, there's a special rule called the "struct hack" which makes an ordinary struct tagged with the typedef name, so the typedef name becomes the class name as well. This is required because functions with external linkage require arguments of class type to have external linkage too, and that implies having an external name. Without this hack, only extern "C" functions could manipulate the struct.
The only place you could use an anonymous struct would be inside another structure:
struct X { struct {int a; } b; } x;
x.b.a; // OK
struct X has external linkage even though the type of b is anonymous. Anonymous structs could be used on the stack or in static storage but unlike anonymous unions, that would provide no advantage over separate variables. I'm not even sure C++ allows anonymous structs.