Title
Missing complete type requirements
Status
ready
Section
7.6.1.3 [expr.call]
Submitter
Richard Smith

Created on 2016-06-27.00:00:00 last changed 2 days ago

Messages

Date: 2024-10-25.21:02:00

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].
Date: 2024-10-15.00:00:00

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.

Date: 2022-02-18.07:47:23

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:29adminsetstatus: tentatively ready -> ready
2024-10-25 21:02:00adminsetmessages: + msg7854
2024-10-25 21:02:00adminsetstatus: review -> tentatively ready
2024-10-15 20:11:50adminsetmessages: + msg7845
2024-10-15 20:11:50adminsetstatus: drafting -> review
2016-06-27 00:00:00admincreate