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