The great inapplicable attribute debate

Christopher Wright dhasenan at gmail.com
Tue Apr 14 15:17:32 PDT 2009


Frits van Bommel wrote:
> Stewart Gordon wrote:
>> Don wrote:
>>> Stewart Gordon wrote:
>> <snip>
>>>> Surely, align isn't applicable to unions at all.  IINM the members 
>>>> of a union, by design, start at the same offset.
>>>
>>> Not so, the alignment of each member should be respected. 
>>
>> But the offset of a union member is always zero.  So what would this do?
> 
> It should make sure the union is aligned appropriately in a containing 
> struct, meaning U.alignof >= M.alignof for all members M. Specifying 
> per-member alignment allows you to change that member's effect on the 
> union's alignment.
> 
>>> Most obviously, a union U consisting of a single member x should have
>>> U.alignof == x.alignof.
>> <snip>
>>
>> Yes, by propagating the union's alignment (relative to the containing 
>> struct) to the member.
> 
> But the union's alignment needs to be sufficient for all members, so it 
> depends on the maximum alignment of all members.

Or the least common multiple, assuming that align accepts arguments that 
are not powers of 2.



More information about the Digitalmars-d mailing list