std::ostream有一个flush()方法,它: 将未提交的更改写入底层输出序列。 对于std::stringstream来说意味着什么?如果我理解正确,这意味着对于这样的流没有什么可做的。这是真的吗?
flush()函数会触发流的rdbuf成员调用其pubsync()方法(该方法又调用sync())。对于string streams,rdbuf是一个std::basic_stringbuf对象,根据链接显示,它的pubsync()/sync()行为是什么都不做。 因此,你的假设是正确的:std::stringstream::flush()并没有实际操作。
<< std::flush
应用于每个ostream;但也没关系。 - einpoklum