Actually, 9.5 says A union of the form union { member-specification } ;is called an anonymous union; it defines an unnamed object of unnamed type. The member-specification of an anonymous union shall only define non-static data members. [ Note: Nested types and functions cannot
be declared within an anonymous union. — end note ]
So we should be able to just reject nested anonymous aggregates and not worry about how to make them work.
Jason