Boost logo

Boost :

From: brianjparker_at_[hidden]
Date: 2001-10-20 19:17:03

--- In boost_at_y..., John Maddock <John_Maddock_at_c...> wrote:
> >alignment_traits class which is used to align stack-based or
> >memory
> See alignment_of in the type traits lib
> - John Maddock


Yes, I am aware of alignment_of.
The problem is that just knowing the required alignment is not useful
without also having some form of standardised #pragma pack to
actually effect the alignment requirements.

By contrast, alignment_traits<T>::align_t, being a POD, is directly
useable in a union to effect the alignment.

For example, in the valunion class I use the following construct to
align the embedded buffer

        union {
                typename alignment_traits<A>::align_t al1;
                typename alignment_traits<B>::align_t al2;
                typename alignment_traits<C>::align_t al3;
                char buffer[size_max];

I don't see how this buffer could be aligned with
alignment_of<T>::value alone.

I do think though that a good place to add the functionality of
aligment_traits<T>::align_t to Boost is in boost::alignment_of i.e.
boost::alignment_of could have an additional member align_t and
alignment_traits would then be hidden in a detail namespace.

,Brian Parker

Boost list run by bdawes at, gregod at, cpdaniel at, john at