Proposed resolution (November, 2018)
Change 7.7 [expr.const] paragraph 1 as follows:
Expressions that satisfy these requirements, assuming that copy elision (11.9.6 [class.copy.elision]) is not performed, are called constant expressions. [Note: Constant expressions can be evaluated during translation. —end note]
Change 9.2.6 [dcl.constexpr] paragraph 7 as follows:
A call to a constexpr function produces the same result as a call to an equivalent non-constexpr function in all respects except that
a call to a constexpr function can appear in a constant expression (7.7 [expr.const]) and
copy elision is
mandatorynot performed in a constant expression (11.9.6 [class.copy.elision]).
Change 11.9.6 [class.copy.elision] paragraph 1 as follows:
...Copy elision isrequirednot permitted where an expression is evaluated in a context requiring a constant expression (7.7 [expr.const]) and in constant initialization (6.9.3.2 [basic.start.static]). [Note: Copy elision mightnotbe performed if the same expression is evaluated in another context. —end note]