|
Boost : |
From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2004-03-08 03:19:33
JOAQUIN LOPEZ MU?Z writes:
> > Robert Ramey wrote:
> > > 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.
> >
> > It doesn't, see aligned_storage's "Rationale" subsection in
> > http://tinyurl.com/39asx.
>
>
> I don't quite get what you mean.
That the fact that 'aligned_storage' has different number/type of
parameters _does not_ by itself suggests that it has different
purpose. The difference is due to the cited rationale.
> So, does boost::aligned_storage serve as a replacement for
> stack_allocate?
'stack_allocate' should be definitely using it, e.g.:
template< typename T > struct stack_allocate
{
T* address() const { return static_cast<T*>(storage_.address()); }
private:
aligned_storage< sizeof(T), alignment_of<T>::value > storage_;
};
-- 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