On 06/23/2011 06:11 PM, Paolo Carlini wrote:
On 06/23/2011 06:05 PM, Jason Merrill wrote:
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.
Yes, but we are accepting already some of that as an extension. If I
compile the testcase with -pedantic-errors I get:
44625.C:8:31: error: ISO C++ prohibits anonymous structs [-pedantic]
44625.C:9:9: error: anonymous struct not inside named type
Of course only the first message is new with -pedantic-errors.
Thus, the idea would be rejecting *nested* anonymous, now I see. Uhmm.
Paolo.