Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2004-03-08 03:45:51


Robert Ramey wrote:
> >Robert Ramey wrote:
> >> This exchange illustrates the problem rather nicely. Its not clear
> >> to me from the name "aligned_storage" that its meant to do the same
> >> job as "stack_allocate" and in fact is easily confused with other
> >> boost functions. I've been able to find no documentation nor test
> >> nor other information. The only place its used is in variant.hpp but
> >> its not mentioned in the documentation of that either. There is no
> >> statement in the header itself as to what it does and the code is
> >> sufficiently non-trivial that it's not obvious what its supposed to
> >> do. The fact that it has a parameter than stack_allocate doesn't
> >> need also suggests that it's intended purpose is different from that
> >> of stack_allocate.
>
> The previous post referred to alignment_of rather than aligned_storage
> which seems to me to unrelated. Are they related in some non-obvious
> (to me) way?

They are realted. A typical usage of 'aligned_storage' for storing a
single T would be

    aligned_storage< sizeof(T), alignment_of<T>::value >
    
which is basically equivalent to what your 'stack_allocate' is aiming
for. It would be useful to have a higher-level wrapper template for this
particular use case, so, assuming that 'stack_allocate' is going to be
fixed to use 'algined_storage' in its implementation, you are more than
welcome to promote it into a public compoment (with a better name, I
hope).

>
> What's incorrect about my statement above?

You are totally right to raise the documentation issue. You were wrong to
assume that 'algined_storage' is intended to serve a different purspose.

>
> >It doesn't, see aligned_storage's "Rationale" subsection in
> >http://tinyurl.com/39asx.
>
> Is this part of boost documentation and tests?

No, and it should be. Eric, John?

--
Aleksey Gurtovoy
MetaCommunications Engineering

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