<< 运算符没有序列点,因此编译器可以自由地评估 dequeue> 功能第一.保证的是第二个 dequeue 调用的结果(按照它在表达式中出现的顺序,不一定是它的计算顺序)是 << 到 << 的第一个结果(如果你明白我在说什么).
因此编译器可以自由地将您的代码翻译成任何类似的东西(伪中间 C++).这并不是一份详尽的清单.
auto tmp2 = myQueue.dequeue();
auto tmp1 = myQueue.dequeue();
std::ostream& tmp3 = cout << tmp1;
tmp3 << tmp2;
或
auto tmp1 = myQueue.dequeue();
auto tmp2 = myQueue.dequeue();
std::ostream& tmp3 = cout << tmp1;
tmp3 << tmp2;
或
auto tmp1 = myQueue.dequeue();
std::ostream& tmp3 = cout << tmp1;
auto tmp2 = myQueue.dequeue();
tmp3 << tmp2;
这是原始表达式中临时词对应的内容.
cout << myQueue.dequeue() << myQueue.dequeue();
| | | | |
| |____ tmp1 _____| |_____ tmp2 ____|
| |
|________ tmp3 _________|
这篇关于cout<<调用它打印的函数的顺序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!
本文链接:https://www.f2er.com/3188533.html