This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 119a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-12-20
[Moved to DR at the October, 2015 meeting.]
According to 6.9.4 [basic.compound] paragraph 3,
The type of a pointer tovoid or a pointer to an object typeis called anobject pointer type. [Note: A pointer tovoid does not have a pointer-to-object type, however,becausevoid is not an object type. —end note]
This wording excludes cv-qualifiedvoid types. Thereare other references in the Standard to “voidtype” that are apparently intended to include cv-qualifiedversions as well.
Proposed resolution (May, 2015):
Change 6.9 [basic.types] paragraph 5 as follows:
...Incompletely-defined object types andthe void typescvvoid are incomplete types(6.9.2 [basic.fundamental])...
Change 6.9 [basic.types] paragraph 8 as follows:
An object type is a (possibly cv-qualified) type that is nota function type, not a reference type, and nota void typecvvoid.
Change 6.9.2 [basic.fundamental] paragraph 9 as follows:
Thevoid type has an empty set of values. TheA typecvvoidtypeisan incomplete type that cannot be completed; such a typehas an empty set of values. It is used asthe return type for functions that do not return avalue. Any expression can be explicitly converted to typecvvoid (7.6.3 [expr.cast]). An expression of typecvvoid shall be used only as anexpression statement (8.3 [stmt.expr]), as anoperand of a comma expression (7.6.20 [expr.comma]),as a second or third operand of?:(7.6.16 [expr.cond]), as the operand oftypeid,noexcept, ordecltype, asthe expression in a return statement(8.8.4 [stmt.return]) for a function with the returntypecvvoid, or as the operandof an explicit conversion to typecvvoid.
Change bullet 1.3 of 6.9.4 [basic.compound] as follows:
pointerstocvvoid or objects orfunctions (including static members of classes) of a giventype, 9.3.4.2 [dcl.ptr];
Change 6.9.4 [basic.compound] paragraph 3 as follows:
The type of a pointer tocvvoidor a pointer to an object type is called anobjectpointer type. [Note:...