[cfe-dev] Initialization of an anonymous struct within a class

Douglas Gregor dgregor at apple.com
Mon Aug 9 16:19:24 PDT 2010


On Aug 9, 2010, at 4:16 PM, Shaun Jackman wrote:

> On Mon, 2010-08-09 at 15:48 -0700, Douglas Gregor wrote: 
>> On Aug 9, 2010, at 12:58 PM, Shaun Jackman wrote:
>> 
>>> Hi,
>>> 
>>> I'm not sure whether an anonymous struct within a class is standard, or
>>> a GCC extension that clang attempts to support. In any case, the
>>> following code snippet gives this error:
>>> 
>>> anonymous-struct.cc:9:16: error: multiple initializations given for non-static member 'y'
>>>       Foo() : x(0), y(0) { }
>>>                     ^~~~
>>> anonymous-struct.cc:9:10: note: previous initialization is here
>>>       Foo() : x(0), y(0) { }
>>>               ^
>>> 2 diagnostics generated.
>>> 
>>> Just for comparison, I've also given code that does not use an anonymous
>>> struct and does compile cleanly.
>> 
>> 
>> It's definitely a Clang bug, and while I know I've seen this issue at least once before, it doesn't seem to be in our bug tracker. Could you file a bug on LLVM's Bugzilla?
>> 
>> 	- Doug
> 
> Hi Doug,
> 
> Is an anonymous struct like this one standard?

No, anonymous structs are a GCC extension. We have reasonably good support for them in C, but not necessarily in C++.

> Bug 7855 - Initialization of an anonymous struct within a class
> http://llvm.org/bugs/show_bug.cgi?id=7855

Thank you!

	- Doug



More information about the cfe-dev mailing list