Title
Standard exceptions require stronger no-throw guarantees
Status
nad
Section
[diagnostics]
Submitter
BSI

Created on 2010-08-25.00:00:00 last changed 171 months ago

Messages

Date: 2010-11-14.15:26:00

[ 2010 Batavia: ]

This is addressed by the current words in 18.8.1 [exception], p2

Each standard library class T that derives from class exception shall have a publicly accessible copy constructor and a publicly accessible copy assignment operator that do not exit with an exception.

Date: 2010-10-24.22:33:31

[ Resolution proposed by ballot comment: ]

Add a global guarantee that all exception types defined in clause 19 that rely on implicitly declared operations have a non-throwing exception specification on those operations.

Date: 2010-10-24.03:04:13

Addresses GB-75

None of the exception types defined in clause 19 are allowed to throw an exception on copy or move operations, but there is no clear specification that the operations have an exception specification to prove it. Note that the implicitly declared constructors, taking the exception specification from their base class (ultimately std::exception) will implicitly generate a noexcept exception specification if all of their data members similarly declare noexcept operations. As the representation is unspecified, we cannot assume nonthrowing operations unless we explicitly state this as a constraint on the implementation.

History
Date User Action Args
2010-11-14 15:26:00adminsetmessages: + msg5365
2010-11-14 15:26:00adminsetstatus: open -> nad
2010-10-24 22:33:31adminsetmessages: + msg5075
2010-10-24 03:04:13adminsetmessages: + msg4900
2010-08-25 00:00:00admincreate