任何人都可以从ISON3242§3.2,第二点
解释这一说法一组候选函数的成员如果被选中则使用odr-used 从可能被评估的表达式引用时的重载决策。 [注意:这包括对命名函数(5.2.2)的调用,运算符重载 (第13条),用户定义的转换(12.3.2),分配函数 placement new(5.3.4),以及非默认初始化(8.5)。
ISO标准2003:说
如果通过重载分辨率选择了重载函数,则使用重载函数 从潜在评估的表达中提到。 [注意:这包括电话 命名函数(5.2.2),运算符重载(第13节),用户定义 转换(12.3.2),放置新的分配函数(5.3.4), 以及非默认初始化(8.5)。
这些陈述的实际差异是什么?
任何人都可以借助示例/程序来解释这个吗?
答案 0 :(得分:7)
术语“重载函数”在引用成员或集合之间(略微)不明确。 C ++ 11阐明了从未从可能被评估的表达式中选择的函数不会被使用。
术语“odr-used”是C ++ 11的新功能。它实质上意味着给定的对象可能在最终的编译二进制文件中表示,并且one-definition rule适用。
答案 1 :(得分:4)
该段落已更改为修复Core Issue #1174。在那里你可以找到显示差异的例子。