Created on 2016-04-11.00:00:00 last changed 48 months ago
Proposed resolution (November, 2017)
Add a new bullet to the list in 7.7 [expr.const] paragraph 2, and update the text as follows:
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;
ora throw-expression (7.6.18 [expr.throw])
.; oran invocation of the va_arg macro (17.13.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.13.2 [cstdarg.syn]), it is unspecified whether e is a core constant expression.
[Accepted as a DR at the March, 2018 (Jacksonville) meeting.]
It is not clear whether a constexpr function can be a vararg function or not. In particular, it is unclear if va_list is a literal type and whether va_start, va_arg, and va_end produce constant expressions.
History | |||
---|---|---|---|
Date | User | Action | Args |
2020-12-15 00:00:00 | admin | set | status: dr -> cd5 |
2018-04-11 00:00:00 | admin | set | status: tentatively ready -> dr |
2018-02-27 00:00:00 | admin | set | messages: + msg5856 |
2016-04-11 00:00:00 | admin | create |