This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++17 status.

### 2559. Error in LWG 2234's resolution

Section: 19.3 [assertions] Status: C++17 Submitter: Tim Song Opened: 2015-11-07 Last modified: 2017-07-30

Priority: 0

View other active issues in [assertions].

View all other issues in [assertions].

View all issues with C++17 status.

Discussion:

The resolution of LWG 2234 says that `assert(E)` is a constant subexpression if "`NDEBUG` is defined at the point where `assert(E)` appears".

This is incorrect, as noted in one of STL's comments in that issue's discussion, but was apparently overlooked.

The proposed resolution below just borrows STL's phrasing from the discussion.

[2016-02, Issues Telecon]

P0; move to Tentatively Ready.

Proposed resolution:

This wording is relative to N4567.

1. Change 19.3 [assertions] p2 as indicated:

   > An expression `assert(E)` is a constant subexpression (3.14 [defns.const.subexpr]), if

   > - `NDEBUG` is defined at the point where `assert(E)` appears `assert` is last defined or redefined, or

   > - […]