Section: 19.3 [assertions] Status: C++17 Submitter: Tim Song Opened: 2015-11-07 Last modified: 2017-07-30 20:15:43 UTC
View all other issues in [assertions].
View all issues with C++17 status.
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.
This wording is relative to N4567.
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, or