Subject: Re: [boost] aligned_storage in unions
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2010-09-17 11:20:18
> 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.