【发布时间】:2013-05-09 06:53:12
【问题描述】:
考虑这样的操作:
int a = f1(mystream)*f2(mystream)+f3(mystream);
其中 f1、f2、f3 的形式如下:
int f(std::istream&)
或
int f(std::ostream&)
我能否保证f1、f2 和f3 将按此顺序执行?
【问题讨论】:
-
不,它们可以按任何顺序执行。
-
我很确定它依赖于编译器,g++/MS 已经在左/右和右/左的相反方向上实现了它。
标签: c++ stream operators operator-precedence