Created on 2012-09-04.00:00:00 last changed 141 months ago
[Moved to DR at the April, 2013 meeting.]
Proposed resolution (October, 2012):
This issue is resolved by the resolution of issue 1550.
A glvalue appearing as one operand of a conditional-expression in which the other operand is a throw-expression is converted to a prvalue, regardless of how the conditional-expression is used:
If either the second or the third operand has type void, then the lvalue-to-rvalue (7.3.2 [conv.lval]), array-to-pointer (7.3.3 [conv.array]), and function-to-pointer (7.3.4 [conv.func]) standard conversions are performed on the second and third operands, and one of the following shall hold:
The second or the third operand (but not both) is a throw-expression (14.2 [except.throw]); the result is of the type of the other and is a prvalue.
This seems to be gratuitous and surprising.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2014-03-03 00:00:00 | admin | set | status: drwp -> cd3 |
| 2013-10-14 00:00:00 | admin | set | status: dr -> drwp |
| 2013-05-03 00:00:00 | admin | set | messages: + msg4390 |
| 2013-05-03 00:00:00 | admin | set | status: ready -> dr |
| 2012-11-03 00:00:00 | admin | set | messages: + msg4054 |
| 2012-09-04 00:00:00 | admin | create | |