|
Boost : |
From: Philippe A. Bouchard (philippeb_at_[hidden])
Date: 2003-02-24 23:24:22
David Abrahams wrote:
[...]
>> What will happen to a normal type then?
>
> What is a "normal type"?
Any type besides optional<T>.
>> {
>> T storage = T(x, y, z); // throws
>>
>> // storage.~T() destroys non-existent T
>
> Storage never gets constructed if T(x,y,z) throws, so it is also
> never destroyed.
It is never destroyed, because the program counter returns from the function
before it reaches the object's destruction? If so, the same will happen to
aligned_storage<T>::type if it trows an exception?
Philippe A. Bouchard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk