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




_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to