|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2003-02-24 14:55:17
"Philippe A. Bouchard" <philippeb_at_[hidden]> writes:
> Yes, exactly. Sorry if I wasn't precise enough.
>
> The bool type will cancel type_with_alignment<> effects (at least on Intel
> compatible platforms); i.e. unique alignment of each optional<T> type.
Sounds like you want
type_with_alignment<T>::type storage;
new ((void*)&storage) T(x, y, z)
Can you really do anything to make this cleaner? I guess:
aligned_storage<T> storage;
new (storage.bytes) T(x, y, z);
might be a help. What else are you gaining? And how do you destroy
the T? If not explicitly and you don't have a "constructed" flag,
you're going to have exception-safety problems.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk