c++ - 调用顺序和副作用

标签 c++ stream operators operator-precedence

考虑这样的操作:

int a = f1(mystream)*f2(mystream)+f3(mystream);

其中 f1、f2、f3 的形式如下:

int f(std::istream&)

int f(std::ostream&)

我能保证 f1f2f3 将按该顺序执行吗?

最佳答案

没有。各个子表达式没有相对于彼此排序。保证的是任何一个函数调用在另一个函数调用开始之前完成,但三个函数调用的顺序是不确定的。

关于c++ - 调用顺序和副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552546/

相关文章:

c++ - 继续C Syntax Analyzer相关项目的困惑

c++ - 多态性和引用切片

C# GetManifestResourceStream 返回 null

ios - 使用 AVAudioPLayer 播放音频片段时出现故障

java - 为什么 Java 的 +=、-=、*=、/= 复合赋值运算符不需要将 long 转换为 int?

c++ - Visual Studio 2012 中的模板别名

c++ - 无法使用 Microsoft Visual Studio 2012 列出初始化 vector

delphi - 使用 Delphi 进行 GZip 流压缩(可选使用 tar)

swift - ~> 运算符的作用是什么?

java - 问号 "?"和冒号 ":"运算符用于什么?