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

2025-12-20


3128. Potentially-throwing unevaluated operands

Section: 14.5  [except.spec]     Status: tentatively ready     Submitter: Richard Smith     Date: 2018-05-06

Consider:

  void f();                          // potentially throwing
  bool b = noexcept(noexcept(f()));  // ought to be "true"

The specification does not properly handle subexpressions of the noexcept operator that are not potentially evaluated (and thus cannot contribute to any exception throwing).

Proposed resolution (approved by CWG 2025-12-05):

Change in 14.5 [except.spec] paragraph 6 as follows:

An expression E is potentially-throwing if