Boost logo

Boost Users :

From: Douglas Gregor (doug.gregor_at_[hidden])
Date: 2005-08-08 14:29:33


On Aug 5, 2005, at 2:07 PM, Michal Kandulski wrote:

> Hi!
>
> I'd like to implement a pimpl, pointing to a stack "allocated" buffer
> by means of palcement new/destroy.
>
> There would be no problem but there are alignment issues.
>
> What really I need is:
> - a way to check by te means of Boost wheater that an object of class
> X can be placed (with placement new) in a buffer of given adress
> and size:
> - a way of getting a pointer to X (within the buffer) where the
> object could be paced

boost::optional<T> does this, as does the more-complicated
boost::variant.

You'll want to use the type traits alignment_of (to find the alignment
of a type) and type_with_alignment (to find a POD type with a given
alignment). If you dig around Boost for aligned_storage you'll see the
technique we've used.

        Doug


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net