Date
2017-11-15.00:00:00
Message id
5856

Content

Proposed resolution (November, 2017)

  1. Add a new bullet to the list in 7.7 [expr.const] paragraph 2, and update the text as follows:

  2. An expression e is a core constant expression unless the evaluation of e, following the rules of the abstract machine (6.9.1 [intro.execution]), would evaluate one of the following expressions:

    • ...

    • a relational (7.6.9 [expr.rel]) or equality (7.6.10 [expr.eq]) operator where the result is unspecified; or

    • a throw-expression (7.6.18 [expr.throw]). ; or

    • an invocation of the va_arg macro (17.14.2 [cstdarg.syn]).

    If e satisfies the constraints of a core constant expression, but evaluation of e would evaluate an operation that has undefined behavior as specified in Clause 16 [library] through Clause 32 [thread] of this document, or an invocation of the va_start macro (17.14.2 [cstdarg.syn]), it is unspecified whether e is a core constant expression.