嵌套函数调用评估顺序

Jam*_*kin 7 c++

众所周知,函数参数的评估顺序未指定,并且可能因不同的编译器而不同.

似乎不太清楚的是函数调用是否可以交错,具体如下:

f(g(h()), i(j()))
Run Code Online (Sandbox Code Playgroud)

让我们假设编译器首先选择评估f的第一个参数.是编译器来电j通话之间hg?我相信,但我不知道在标准中哪里可以找到确认.

小智 13

评估订单未指定 - 参见标准第5.2.2/8节:

参数的评估顺序未指定.参数表达式求值的所有副作用在输入函数之前生效.