分配操作中的标准变更

时间:2011-12-07 22:45:24

标签: c++ c++11

有人可以通过示例解释新标准中有关以下内容的更改吗?这是指严格的别名规则吗?

  

5.17 / 8。如果存储在对象中的值是从另一个对象访问的,该对象以任何方式与第一个对象的存储重叠   对象,则重叠应精确,两个对象应具有   相同的类型,否则行为未定义。

在新标准中,它已更改为以下注释:

  

[注意:此限制适用于左侧之间的关系   和任务操作的右侧;这不是一个声明   关于如何赋值的目标一般可能是别名。看到   3.10。 - 结束说明]

1 个答案:

答案 0 :(得分:2)

这解释了更改:http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#556

  

允许使用别名时,似乎有两种不同的规范。

     

[...]

     

这个问题是基于对5.17 [expr.ass]第8段中措辞意图的误解。它不是关于别名的一般性陈述,而是描述分配的值的来源是存储的情况。与目标对象的存储重叠。拟议的决议应该更清楚,而不是改变规范。