考虑这样的操作:
int a = f1(mystream)*f2(mystream)+f3(mystream);
其中 f1、f2、f3 的形式如下:
int f(std::istream&)
或
int f(std::ostream&)
我能保证 f1
、f2
和 f3
将按该顺序执行吗?
最佳答案
没有。各个子表达式没有相对于彼此排序。保证的是任何一个函数调用在另一个函数调用开始之前完成,但三个函数调用的顺序是不确定的。
关于c++ - 调用顺序和副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552546/