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