|
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