This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-02-07


1216. Exceptions “allowed” by a noexcept-specification

Section: 14.5  [except.spec]     Status: C++11     Submitter: Jens Maurer     Date: 2010-11-02

[Voted into the WP at the March, 2011 meeting as part of paper N3262.]

According to 14.5 [except.spec] paragraph2 8 and 9,

A function is said to allow an exception of type E if its dynamic-exception-specification contains a type T for which a handler of type T would be a match (14.4 [except.handle]) for an exception of type E.

Whenever an exception is thrown and the search for a handler (14.4 [except.handle]) encounters the outermost block of a function with an exception-specification that does not allow the exception, then,

This does not define what it means for a noexcept-specification to allow an exception.

Proposed resolution (November, 2010) [SUPERSEDED]:

Change 14.5 [except.spec] paragraph 8 as follows:

A function is said to allow an exception of type E if the constant-expression in its noexcept-specification evaluates to false or its dynamic-exception-specification contains a type T for which a handler of type T would be a match (14.4 [except.handle]) for an exception of type E.