资格转换的歧义

ambiguity in qualification conversion

我想我要么误解了某些东西,要么标准中的某些东西可能含糊不清。而且是关于资格转换。

根据最新草稿http://eel.is/c++draft/conv.qual#1

A cv-decomposition of a type T is a sequence of cvi and Pi such that T is “cv0 P0 cv1 P1 ⋯ cvn−1 Pn−1 cvn U” for n>0,

关于我对类型T分解的理解:

using T1 = const char * const **;

可能正在关注

但由于没有说明分解应该朝哪个方向进行(IMO)也可以用另一种方式解释:

下面的句子会有所不同http://eel.is/c++draft/conv.qual#3.3 :

If the cv1i and cv2i are different, then const is in every cv2k for 0 < k < i.

因为对于第一种解释,如果 i = 1 或 2,句子将永远不成立,而对于第二种解释,对于 i = 1 或 2,句子将成立。

我的第二个疑惑是,这句话怎么解释

If the cv1i and cv2i are different, then const is in every cv2k for 0 < k < i.

For i = 0 or 1. For i = 0 or 1 cv set is empty, thus we can say that all cv for this set have const, because all is none and there are no element在集合中,但我们也可以说 none 元素有常量,因为集合中没有元素。

标准中是否有任何地方可以解释如何准确理解 cv 分解以及应该朝哪个方向发展?

@MartinBonner 在问题的评论中给出了答案。

我没注意到U旁边有cvn,意思是constness decomposition是从最外层指针到最内层指针.

(索引最大的cv最接近U类型)