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

std::basic_stringbuf::overflow

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

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

该函数还可以在此函数调用的任何时候重新分配缓冲区以使其变大,即使仍有可用写入位置(尽管这不是必需的)。

如果 c 是*文件结束*值(traits_type::eof()),则不写入任何字符,并且*放置指针*(pptr)不会被推进,但如上所述,该函数仍可能重新分配(尽管这不是必需的)。

当*放置指针*(pptr)没有可用写入位置时,此虚函数由公共成员函数(如 sputc)调用以放置字符。

参数

c
要写入的字符。
如果这是*文件结束*值(traits_type::eof()),则不写入任何字符,*放置指针*(pptr)不会被推进,但可能适用其他效果。
成员类型int_type是能够表示任何字符值或特殊*文件结束*符的整型。

返回值

如果成功,则返回一个非*文件结束*值(traits_type::eof())的值:如果字符 c 被成功写入,则返回 c
否则,返回*文件结束*值(traits_type::eof())以指示失败。
成员类型int_type是能够表示任何字符值或特殊*文件结束*符的整型。

数据竞争

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

异常安全

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

另见