N3797::13.3.3.1/2 [over.best.ics]
讲述了一个形式错误的隐式转换,如下所示:
隐式转换序列仅涉及类型, cv-qualification,参数的值类别以及它们是如何组成的 转换为匹配参数的相应属性。 其他属性,例如生命周期,存储类,对齐方式或 参数的可访问性以及参数是否为a 位字段被忽略。所以,虽然是一个隐含的转换序列 可以为给定的参数 - 参数对定义转换 从参数的参数可能仍然是格式错误的 最终分析。
我不知道如何定义这样的转换。事情是我所知道的所有类型的转换都是格式良好的转换,例如使用operatorn A(){ ... }
的用户定义转换或标准转换。你不能提供一个不正确的转换的例子吗?
答案 0 :(得分:0)
§13.3.3.1.4中的简单示例[over.ics.ref] / p4:
[示例:具有“
int
左值参考”参数的函数 即使相应的论证是一个可以成为可行的候选者int
位字段。隐式转换序列的形成对待 将int
位字段作为int
左值并找到与之完全匹配 参数。如果通过重载分辨率选择该功能,则 尽管如此,由于禁止呼叫,呼叫将会形成不良 将非const
左值引用绑定到位字段(8.5.3)。 - 端 例子]