February 15, 2007
Sean Kelly wrote:
> Frits van Bommel wrote:
>> Walter Bright wrote:
>>> Jarrett Billingsley wrote:
>>>> I'm not sure how anonymous unions and structs are handled by the compiler. 
>>>
>>> This has nothing to do with tuples. Anonymous structs and unions are used for layout only, the members are 'promoted' into the enclosing aggregate.
>>
>> It's fairly obvious this is what's happening. And normally this wouldn't matter as you wouldn't be able see the difference, but because of ..tupleof this is now detectable.
>> I think the real question here is: while this may be what *is* happening, is this also what *should* happen? (i.e. "Is this a bug?")
>> I can't find anything specifying this behavior in the spec...
> 
> I think as long as .offsetof can be obtained for the values then everything should be fine.  You know members are part of a union when their .offsetof is the same.

Yeah, you can figure it out like this, but I do think exposing anonymous structs and unions as actual struct an union members would lead to cleaner code for some cases. Even if this only happens when it's nested in an aggregate of the other type (or a union in a class).
1 2
Next ›   Last »