在典型的C++代码中,C++ 17评估顺序保证(P0145)投票的含义是什么?
对于像这样的事情,它有什么变化
i=1;
f(i++, i)
Run Code Online (Sandbox Code Playgroud)
和
std::cout << f() << f() << f() ;
Run Code Online (Sandbox Code Playgroud)
要么
f(g(),h(),j());
Run Code Online (Sandbox Code Playgroud) 众所周知,函数参数的评估顺序未指定,并且可能因不同的编译器而不同.
似乎不太清楚的是函数调用是否可以交错,具体如下:
f(g(h()), i(j()))
Run Code Online (Sandbox Code Playgroud)
让我们假设编译器首先选择评估f的第一个参数.是编译器来电j通话之间h和g?我相信,但我不知道在标准中哪里可以找到确认.