This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[Moved to DR at the October, 2012 meeting.]
Proposed resolution (December, 2011):
Change 7.2.1 [basic.lval] paragraph 4 as follows (supersedes the corresponding change in the resolution of issue 1059):
Class prvalues can have cv-qualified types; non-class prvalues always have cv-unqualified types.Unless otherwise indicated (7.6.1.3 [expr.call]), prvalues shall always have complete types or the void type; in addition to these types, glvalues can also have incomplete types. [Note: class and array prvalues can have cv-qualified types; other prvalues always have cv-unqualified types. See Clause 7 [expr]. —end note]
Add a new paragraph following Clause 7 [expr] paragraph 5:
If an expression initially has the type “reference to T”...
If a prvalue initially has the type “cv T,” where T is a cv-unqualified non-class, non-array type, the type of the expression is adjusted to T prior to any further analysis.
Change 7.6.1.3 [expr.call] paragraph 3 as follows:
If the postfix-expression designates a destructor (11.4.7 [class.dtor]), the type of the function call expression is void; otherwise, the type of the function call expression is the return type of the statically chosen function (i.e., ignoring the virtual keyword), even if the type of the function actually called is different. This return type shall be an object type, a reference type orthe typecv void.
Change 7.6.1.4 [expr.type.conv] paragraph 2 as follows:
...[Note: if T is a non-class type that is cv-qualified, the cv-qualifiers areignoreddiscarded when determining the type of the resulting prvalue (7.2.1 [basic.lval]Clause 7 [expr]). —end note]
Change 7.6.3 [expr.cast] paragraph 1 as follows:
...[Note: if T is a non-class type that iscv-qualifiedcv-qualified, the cv-qualifiers areignoreddiscarded when determining the type of the resulting prvalue; see7.2.1 [basic.lval]Clause 7 [expr]. —end note]