A cv-decomposition of a type T is a sequence of cvi and Pi such that T is“cv0P0cv1P1⋯cvn−1Pn−1cvnU” for n≥0,where each cvi is a set of cv-qualifiers ([basic.type.qualifier]), and each Pi is “pointer to” ([dcl.ptr]), “pointer to member of class Ci of type” ([dcl.mptr]), “array of Ni”, or “array of unknown bound of” ([dcl.array]).
If Pi designates an array, the cv-qualifiers cvi+1 on the element type are also taken as the cv-qualifiers cvi of the array.
The type denoted by the type-idconstint** has two cv-decompositions, taking U as “int” and as “pointer to constint”.
—end example
]
The n-tuple of cv-qualifiers after the first one in the longest cv-decomposition of T, that is, cv1,cv2,…,cvn, is called the cv-qualification signature of T.
This commit changed the cv-decomposition above from n > 0 to n >= 0. As far as I 'm concerned the n > 0 was correct.
The paragraph above says the following: "The type denoted by the type-id const int ** has two cv-decompositions taking U as "int" and as "pointer to const int".
To the best of my knowledge I would say that the the type-id const int ** has the following cv decomposition: