This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-02-07


609. What is a “top-level” cv-qualifier?

Section: 9.2.9.2  [dcl.type.cv]     Status: CD4     Submitter: Dawn Perchik     Date: 5 November 2006

[Moved to DR at the November, 2014 meeting.]

The phrase “top-level cv-qualifier” is used numerous times in the Standard, but it is not defined. The phrase could be misunderstood to indicate that the const in something like const T& is at the “top level,” because where it appears is the highest level at which it is permitted: T& const is ill-formed.

Proposed resolution (February, 2014):

Change 6.8.5 [basic.type.qualifier] paragraph 5 as follows, splitting it into two paragraphs:

In this International Standard, the notation cv (or cv1, cv2, etc.), used in the description of types, represents an arbitrary set of cv-qualifiers, i.e., one of {const}, {volatile}, {const, volatile}, or the empty set. For a type cv T, the top-level cv-qualifiers of that type are those denoted by cv. [Example: The type corresponding to the type-idconst int&” has no top-level cv-qualifiers. The type corresponding to the type-idvolatile int * const” has the top-level cv-qualifier const. For a class type C, the type corresponding to the type-idvoid (C::* volatile)(int) const” has the top-level cv-qualifier volatile. —end example]

Cv-qualifiers applied to an array type attach...