Boost logo

Boost :

Subject: Re: [boost] Silent change in boost 1.36 alignment_of<> template with gcc 4.3
From: David Abrahams (dave_at_[hidden])
Date: 2008-11-08 21:33:31


on Sat Nov 08 2008, Mathias Gaunard <mathias.gaunard-AT-ens-lyon.org> wrote:

> Jon Biggar wrote:
>
>> Unfortunately, this broke some code I had written that did structure introspection,
>> because gcc's __alignof__() returns 8 for double on the x86 architecture, but
>> actually only aligns doubles on 4 byte boundaries inside structures.
>
> I personally never understood why gcc's alignof returns that.
> It doesn't even make sense, since the size of double is not a multiple of 8, so
> multiple doubles right after each other can't possibly be 8-byte aligned.

We could easily either specialize our way around it or limit the result
of alignment_of<T> to sizeof(T). The latter seems like a smart thing to
do anyway.

Thoughts?

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk