Created on 2010-08-03.00:00:00 last changed 131 months ago
[Voted into the WP at the November, 2010 meeting.]
Proposed resolution (September, 2010):
Change 14.3 [except.ctor] paragraph 2 as follows:
An objectthat is partially constructed or partially destroyedof any storage duration whose initialization or destruction is terminated by an exception will have destructors executed for all of its fully constructedbase classes and non-variant memberssubobjects (excluding the variant members of a union-like class), that is, for subobjects for which the principal constructor (11.9.3 [class.base.init]) has completed execution and the destructor has not yet begun execution. Similarly, if the non-delegating constructor...
According to 14.3 [except.ctor] paragraph 2,
An object that is partially constructed or partially destroyed will have destructors executed for all of its fully constructed base classes and non-variant members, that is, for subobjects for which the principal constructor (11.9.3 [class.base.init]) has completed execution and the destructor has not yet begun execution.
This wording leaves unclear whether the remaining elements of an array will be destroyed if the destructor for one of the elements exits via an exception: an array element is a subobject (6.7.2 [intro.object] paragraph 2), but it is not a base class or non-variant member.
History | |||
---|---|---|---|
Date | User | Action | Args |
2014-03-03 00:00:00 | admin | set | status: fdis -> c++11 |
2011-04-10 00:00:00 | admin | set | status: dr -> fdis |
2010-11-29 00:00:00 | admin | set | messages: + msg3207 |
2010-11-29 00:00:00 | admin | set | status: tentatively ready -> dr |
2010-10-18 00:00:00 | admin | set | messages: + msg2996 |
2010-10-18 00:00:00 | admin | set | status: drafting -> tentatively ready |
2010-08-03 00:00:00 | admin | create |