【发布时间】:2011-05-19 19:42:39
【问题描述】:
(++i)++ 是未定义的行为吗?在检索增量对象以进行后缀增量操作后,前缀增量的副作用是否可能发生?这对我来说似乎很奇怪。
我的直觉是这在 C++03 中是未定义的,而在 C++11 中是明确定义的。我说的对吗?
【问题讨论】:
-
为什么这么多人问这个问题?只是不要这样做。谁在乎它的作用 - 这是糟糕的代码,无论如何都不应该编写。
-
@jjnguy:我会区分“永远不应该被编写”和“永远不应该用于做任何重要事情的生产代码”。编写已知的错误代码以便从中学习通常是件好事。以可控的方式让事情失败,测试预测的失败,等等。
-
应该有一个专门的stackoverflow站点来解决C++中未定义的行为问题
-
我明白基础研究的价值。但是,我已经回答了这些问题,特别是考虑到您编写了有关该主题的常见问题解答。对 UB 的痴迷已经够了。
-
提议的副本是关于常见的未定义行为,并且可以追溯到 2008 年。这个问题是关于 C++03(由副本涵盖)和 C++0x(不是)。
标签: c++ c++11 language-lawyer undefined-behavior sequence-points