子表达式的未定义行为

use*_*156 2 c++ undefined-behavior

这会导致未定义的行为,因为评估的顺序是未指定的吗?

int i = 0, j = 0, k = 0;
int result = i++ + ++j + k++;
Run Code Online (Sandbox Code Playgroud)

CB *_*ley 5

不,评估结果不依赖于子表达式的未指定的评估顺序.

如果影响同一对象的两个副作用相对于彼此无序或副作用并且同一对象的值计算未被排序,则仅在此情况下发生未定义的行为.前缀和后缀增量的副作用和值计算被明确地排序.