当我在单个表达式中打印流的 id 时,它会向后打印。通常会出现这样的结果:
std::stringstream ss;
std::cout << ss.xalloc() << '\n';
std::cout << ss.xalloc() << '\n';
std::cout << ss.xalloc();
输出是:
4
5
6
但是当我在一个表达式中执行它时,它会向后打印,为什么?
std::stringstream ss;
std::cout << ss.xalloc() << '\n'
<< ss.xalloc() << '\n'
<< ss.xalloc();
输出:
6
5
4
我知道评估的顺序是未指定的,但为什么以下总是导致正确的顺序:
std::cout << 4 << 5 << 6;
有人可以解释为什么xalloc
行为不同吗?谢谢。