4

If iis an int, 像这样的表达式++i + ++i是未定义的行为,因为有 2 个未排序的修改i. 但是, ifi是一些int类似的类,++i + ++i而是具有不确定的顺序修改,因此是定义的行为(在这种情况下具有确定性的结果)。有没有一种情况,对原语的操作最好是无序列的而不是不确定的序列?如果是这样,为什么这种情况不适用于用户创建的类型?如果不是,为什么原始操作根本没有排序?

4

1 回答 1

3

一般来说,有尽可能多的“未排序”。

不可能让两个函数在 C++ 中交错运行。因此,不可能运行两个operator++实现交错。

因此,对于实现的类类型operator++,这是不确定的。

于 2013-04-01T15:10:25.910 回答