This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 112e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
[Moved to DR at the October, 2012 meeting.]
There are some points in the description discarded-value expressions that need clarification:
Does this require the lvalue-to-rvalue conversion in the listed cases or only prohibit it in all other cases (“only if” vs “if and only if”)?
Does this apply only to built-in operations or to overloaded operators?
Does this apply to non-POD types?
In some contexts, an expression only appears for its side effects. Such an expression is called a discarded-value expression. The expression is evaluated and its value is discarded. The array-to-pointer (7.3.3 [conv.array]) and function-to-pointer (7.3.4 [conv.func]) standard conversions are not applied. The lvalue-to-rvalue conversion (7.3.2 [conv.lval]) is applied only if the expression is an lvalue of volatile-qualified type and it has one of the following forms:
id-expression (_N4567_.5.1.1 [expr.prim.general]),
class member access (184.108.40.206 [expr.ref]),
indirection (220.127.116.11 [expr.unary.op]),
pointer-to-member operation (7.6.4 [expr.mptr.oper]),
expression(7.6.16 [expr.cond]) where both the second and the third operands are one of the above, or
expression(7.6.20 [expr.comma]) where the right operand is one of the above.
Proposed resolution (February, 2012):
Change Clause 7 [expr] paragraph 10 as follows:
...The lvalue-to-rvalue conversion (7.3.2 [conv.lval]) is applied only if the expression is an lvalue of volatile-qualified type and it
hasone of the following forms:
Additional note (February, 2012):
A problem was discovered that was not addressed by the proposed resolution that was reviewed at the February, 2012 meeting, so the issue has been moved back to "review" status with revised wording.