资格转换的歧义

ambiguity in qualification conversion

本文关键字:歧义 转换      更新时间:2023-10-16

我想我要么误解了标准中的某些东西,可能是模棱两可的。这是关于资格转换的。

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

T型T型的CV分解是CVI和PI的序列,因此T是" CV0 P0 P0 CV1 P1 P1 p1 cvn-1 Pn-1 CVN U",对于N> 0,

关于我的理解T类T:

的分解
using T1 = const char * const **;

可能正在遵循

  • n = 2
  • u = char
  • cv2 = const
  • p2 = *
  • cv1 = const
  • P1 - *
  • cv0 =空
  • p0 = *

,但由于没有说分解应该走到哪个方向(IMO)也可以用另一种方式来解释:

  • n = 2
  • u = char
  • cv0 = const
  • p0 = *
  • cv1 = const
  • P1 - *
  • cv2 =空
  • p2 = *

这将对以下句子有所不同http://eel.is/c draft/conv.qual#3.3:

如果CV1I和CV2I不同,则在每个CV2K中均在0&lt中const;K<i。

由于对于第一个解释,该句子将永远无法实现i = 1或2的句子,而对于第二个解释,对于i = 1或2。

我的第二个疑问是,如何解释句子

如果CV1I和CV2I不同,则在每个CV2K中均在0&lt中const;K<i。

for i = 0或1。对于i = 0或1,CV集为空,因此我们可以说该集合的所有简历都有const,因为所有内容均无,集合中没有元素,但是我们也可以说没有元素具有const,因为集合中没有元素。

标准中是否有任何位置,可以解释如何准确理解简历分解以及应该走的方向?

答案是由@martinbonner在评论中给出的。

我没有注意到仅在u旁边有CVN,这意味着 constness分解从最外部到最内部的指针

(具有最大索引的简历将最接近U型U)。