【发布时间】:2011-04-25 08:11:12
【问题描述】:
我非常相信我发现的解释是 i = ++i is not undefined 就 C++0x 而言,但我无法判断 i += ++i 的行为是否明确定义或不是。有接盘侠吗?
【问题讨论】:
-
g++ 说是的,它是 UB。
-
@KennyTM :我有 4.5.0 版,它警告我即使 i = ++i 未定义。你用的是什么版本?您是否成功编译 i = ++i 而没有警告?
-
i = ++i 和 i += ++i 都是 UB
-
@Armen : i = ++i 在 C++0x 中定义良好。
-
@Armen :您可能想阅读open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#637
标签: c++ c++11 undefined-behavior compound-assignment