受保护的虚成员函数
<streambuf> <iostream>

std::streambuf::overflow

int overflow (int c = EOF);
在溢出时放置字符
其他成员函数调用此虚函数,用于在不更改当前位置的情况下将字符放入受控输出序列

写指针pptr)处没有可用写位置时,公共成员函数(如 sputc)会调用它来写入字符。

streambuf 中的默认行为是始终返回 EOF(表示失败),但派生类可以覆盖此行为,尝试直接写入字符和/或修改 pptr 和其他内部指针,以便提供更多存储空间,可能将未写入的字符写入受控输出序列。both filebuf and stringbuf override this virtual member function.

参数

c
要放置的字符。
如果这是文件尾值(EOF),则不放置字符,但会尝试调用此函数的所有其他效果。

返回值

成功时,将使用成员 traits_type::to_int_type 将放置的字符转换为 int_type 类型的值并返回。
否则,如果 c 参数传递的是此值,或者用于指示失败,则返回文件尾值(EOF)(某些实现可能会抛出异常)。

数据竞争

修改*流缓冲区*对象。
同时访问同一*流缓冲区*对象可能会导致数据竞争。

异常安全

基本保证:如果抛出异常,*流缓冲区*处于有效状态。

另见