Created on 2013-09-22.00:00:00 last changed 49 months ago
[Moved to DR at the October, 2015 meeting.]
Proposed resolution (May, 2015):
Change 11.4.7 [class.dtor] paragraph 11 as follows:
...A destructor is potentially invoked if it is invoked or as specified in 126.96.36.199 [expr.new]
and11.9.3 [class.base.init]. A program is ill-formed if...
Change 14.2 [except.throw] paragraph 5 as follows:
When the thrown object is a class object, the constructor selected for the copy-initialization
and the destructorshall be accessible, even if the copy/move operation is elided (_N4750_.15.8 [class.copy]).
Additional note, February, 2014:
This issue was referred to CWG by EWG at the September, 2013 meeting but was overlooked at that time.
The specification of std::current_exception() in 17.9.7 [propagation] allows either referring to the exception object itself or to a copy thereof, implying that the exception object must be copyable. However, the specification of throw-expression allows throwing objects that cannot be copied, only moved. Presumably the requirements should include a non-deleted accessible copy constructor that is odr-used by a throw-expression, even if the object being thrown is moved to the exception object.
|2017-02-06 00:00:00||admin||set||status: dr -> cd4|
|2015-11-10 00:00:00||admin||set||messages: + msg6083|
|2015-11-10 00:00:00||admin||set||status: ready -> dr|
|2015-05-25 00:00:00||admin||set||messages: + msg5468|
|2015-05-25 00:00:00||admin||set||status: drafting -> ready|
|2014-11-24 00:00:00||admin||set||status: open -> drafting|
|2014-03-03 00:00:00||admin||set||messages: + msg4921|