简历限定签名将忽略第一限定符

时间:2019-07-18 01:08:55

标签: c++ language-lawyer

http://eel.is/c++draft/conv.qual#1.sentence-4说:

  

在最长n的cv分解中的第一个(即T之后的cv限定词的cv1,cv2,…,cvn元组被称为{ {1}}。

这意味着对于类型T,cv-qualification签名为空集,因为不包括第一个限定符; const int的简历资格签名也是如此。在遵循规则http://eel.is/c++draft/conv.qual#3时,这将允许int转换为const int,这绝对不是故意的。我只是读错了吗?

1 个答案:

答案 0 :(得分:4)

  

这将允许将const int转换为int

正确。

  

这绝对不是故意的。

这是故意的。

  

我读错了吗?

您的解释似乎正确。但是关于意向性的假设却不是。


此类转换的示例:

const T i = 42;
T j = i; // implicit conversion from const to non-const