std::stringstream::flush()应该做什么?

3

std::ostream有一个flush()方法,它:

将未提交的更改写入底层输出序列。

对于std::stringstream来说意味着什么?如果我理解正确,这意味着对于这样的流没有什么可做的。这是真的吗?

1个回答

5

flush()函数会触发流的rdbuf成员调用其pubsync()方法(该方法又调用sync())。对于string streams,rdbuf是一个std::basic_stringbuf对象,根据链接显示,它的pubsync()/sync()行为是什么都不做。

因此,你的假设是正确的:std::stringstream::flush()并没有实际操作。


确实,也许有趣的是提到这种方法存在的目的是确保您可以使用任何类型的流而不必知道其实现方式。 - JVApen
@JVApen:我认为人们知道可以将<< std::flush应用于每个ostream;但也没关系。 - einpoklum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接