
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