<分区>
我对 changes 的方式有点困惑到 C++17 会影响您不应在序列点之间修改一个变量 2 次的规则。
例如,这在 C++17 中是指定的、未指定的还是未定义的?
void func(int x, int y);
int x=47;
func(x++,x++);
我猜是 UB。
编辑:额外数据点:c++2a 模式下的 clang HEAD 给出
prog.cc:8:11: warning: multiple unsequenced modifications to 'x' [-Wunsequenced]
edit2: 与 C++2a 模式下的 gcc HEAD 相同
prog.cc:8:15: 警告:'x' 上的操作可能未定义 [-Wsequence-point]
edit3:使用预增量 gcc 和 clang 给出 different results