我有一些使用 astd::ostringstream
作为临时缓冲区的现有代码。为了提高稳健性,我想定义缓冲区大小的上限(例如 16 KB)。当超出限制时,所有后续附加的数据都应该被静默丢弃。理想情况下,在记录警告之后。
最简单的方法是什么?std::ofstream
似乎没有获得其当前大小的有效方法。我只能想到my_stream.str().size()
,这似乎效率很低。
当然,我可以通过保留一个额外的计数器来手动跟踪插入字符的数量,但也许我缺少一个优雅的替代方案。我看到它有一个可以替换ofstringstream
的内部缓冲区( )。rdbuf()
使用它来解决我的问题是否可能(并且实用)?