受保护的虚成员函数
<sstream>

std::stringbuf::overflow

int overflow (int c = EOF);
放置字符
将字符 c 写入“put”指针(pptr)的当前位置,并将该指针向前移动一个位置。

如果没有可用位置,并且 stringbuf 对象是用 ios_base::out 构建的,则该函数首先尝试使更多写入位置可用,必要时重新分配内部缓冲区:这可能会修改输入和输出控制序列的指针(最多为 ebackgptregptrpbasepptrepptr 中的所有指针)。

该函数还可能在每次调用此函数时重新分配缓冲区以使其更大,即使仍有可用写入位置(尽管不强制要求这样做)。

如果 cEOF,则不写入任何字符,也不移动“put”指针(pptr),但仍可能发生上述重新分配(尽管不强制要求这样做)。

当“put”指针(pptr)没有可用写入位置时,此虚函数会被 sputc 等公共成员函数调用以写入字符。

参数

c
要写入的字符。
如果这是 EOF,则不写入任何字符,也不移动“put”指针(pptr),但可能适用其他效果。

返回值

如果成功,则返回值不为 EOF:如果字符 c 已成功写入,则返回 c
否则,返回 EOF 以表示失败。

数据竞争

修改 stringbuf 对象。
并发访问同一对象可能导致数据竞争。

异常安全

基本保证:如果抛出异常,对象处于有效状态。

另见