不正确的隐式转换示例

时间:2014-11-22 06:12:01

标签: c++ implicit-conversion

N3797::13.3.3.1/2 [over.best.ics]讲述了一个形式错误的隐式转换,如下所示:

  

隐式转换序列仅涉及类型,   cv-qualification,参数的值类别以及它们是如何组成的   转换为匹配参数的相应属性。   其他属性,例如生命周期,存储类,对齐方式或   参数的可访问性以及参数是否为a   位字段被忽略。所以,虽然是一个隐含的转换序列   可以为给定的参数 - 参数对定义转换   从参数的参数可能仍然是格式错误的   最终分析。

我不知道如何定义这样的转换。事情是我所知道的所有类型的转换都是格式良好的转换,例如使用operatorn A(){ ... }的用户定义转换或标准转换。你不能提供一个不正确的转换的例子吗?

1 个答案:

答案 0 :(得分:0)

§13.3.3.1.4中的简单示例[over.ics.ref] / p4:

  

[示例:具有“int左值参考”参数的函数   即使相应的论证是一个可以成为可行的候选者   int位字段。隐式转换序列的形成对待   将int位字段作为int左值并找到与之完全匹配   参数。如果通过重载分辨率选择该功能,则   尽管如此,由于禁止呼叫,呼叫将会形成不良   将非const左值引用绑定到位字段(8.5.3)。 - 端   例子]