Created on 2016-06-27.00:00:00 last changed 2 days ago
Proposed resolution (approved by CWG 2024-10-25):
Change in 7.6.1.3 [expr.call] paragraph 13 as follows:
A function call is an lvalue if the result type is an lvalue reference type or an rvalue reference to function type, an xvalue if the result type is an rvalue reference to object type, and a prvalue otherwise. If it is a non-void prvalue, the type of the function call expression shall be complete, except as specified in 9.2.9.6 [dcl.type.decltype].
Additional notes (October, 2024)
An almost-editorial change (approved by CWG 2021-08-24) restored a consistent complete-type requirement for typeid; see cplusplus/draft#4827.
P0135R1 (Wording for guaranteed copy elision through simplified value categories) removes complete type requirements from 7.6.1.3 [expr.call] (under the assumption that subclause 9.4 [dcl.init] has them; apparently it does not) and from 7.6.1.8 [expr.typeid] paragraph 3. These both appear to be bad changes and should presumably be reverted.
History | |||
---|---|---|---|
Date | User | Action | Args |
2024-11-18 17:51:29 | admin | set | status: tentatively ready -> ready |
2024-10-25 21:02:00 | admin | set | messages: + msg7854 |
2024-10-25 21:02:00 | admin | set | status: review -> tentatively ready |
2024-10-15 20:11:50 | admin | set | messages: + msg7845 |
2024-10-15 20:11:50 | admin | set | status: drafting -> review |
2016-06-27 00:00:00 | admin | create |