Boost logo

Boost :

Subject: Re: [boost] [type-traits] aligned_storage in unions
From: dherring_at_[hidden]
Date: 2010-09-17 11:37:44


On Fri, 17 Sep 2010, Steven Watanabe wrote:
> dherring_at_[hidden] wrote:
>> While C++0x promises to change things (see draft spec section 9.5),
>> C++ currently does not allow unions to contain members having a
>> nontrivial constructor, operator=, or destructor. This excludes
>> std::string, std::complex, structures containing either, etc.
>>
>> The "standard" workaround is to allocate your own memory and use
>> manual type casting. Boost::aligned_storage can be used to maintain
>> proper alignment, but it cannot be placed inside a union due to the
>> default ctor, dtor, and noncopyable functions. Thus I am forced to
>> use part of boost::detail.
>
> Use boost::aligned_storage<...>::type which should be POD.

Thanks. Missed that typedef to the detail. Any other comments on the
approach would be appreciated.

- Daniel


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