Boost logo

Boost :

Subject: Re: [boost] [type-traits] aligned_storage in unions
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2010-09-17 15:12:10


AMDG

OvermindDL1 wrote:
> On Fri, Sep 17, 2010 at 9:46 AM, <dherring_at_[hidden]> wrote:
>
>> On Fri, 17 Sep 2010, Frank Mori Hess wrote:
>>
>>> What about using boost.variant instead?
>>>
>> It doesn't satisfy my need for everything to be in-place (e.g. for seamless
>> use with shared memory, memory pools, etc.). [Note: we don't actually use
>> std::string; it was just convenient for the example.]
>>
>
> How is it not in-place?
>
> If C++ supported unions containing anything, then
> boost::variant<int,std::string,myClass> would be identical in layout
> to:
> struct {
> uint which;
> union {
> int i;
> std::string s;
> myClass m;
> }
> }
> Which all use the same memory.

boost::variant can use the heap in some cases,
to preserve exception safety.

In Christ,
Steven Watanabe


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