basic_streambuf::overflow
可以调用受保护的虚函数,在新字符插入完整的缓冲区。
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
参数
- _Meta
要插入的字符到缓冲区中或 traits_type::eof。
返回值
如果函数不能成功,则返回 traits_type::eof 或引发异常。否则,它将返回 traits_type::not_eof(_Meta)。默认行为是返回 traits_type::eof。
备注
如果_Meta与 traits_type::eof不相等,受保护的虚成员函数竭力插入元素 traits_type::to_char_type(_Meta)到输出流。它可以这样做以多种方式:
如果 write position 可用,它可以存储元素编写位置并提高输出区域的下指针。
这可能使编写位置可通过分配输出区域的新功能或系统内存。
这可能使编写位置可通过写出,到某个外部目标,某些或所有开始和下指针之间的元素的输出区域。
虚拟溢出功能,与 同步 和 下溢 功能外,还定义streambuf派生的选件类的特性。每个派生类可能以不同方式实现溢出,但是,使用名为的流选件类的接口相同。
overflow 功能由与 sputc 和 sputn 的公共 streambuf 函数频繁调用,当放置的区域已满时,但是,其他选件类,包括流选件类,可以随时调用 overflow。
函数放置的区域使用字符在 pbase 和 pptr 指针之间然后重新初始化放在区域。overflow 功能还必须使用 nCh (如果 nCh 不是 EOF),也可以在新的放置区域可以选择将该字符,以便在下将使用调用。
定义使用在派生类中更改。例如,filebuf 选件类编写它对文件的字符,而 strstreambuf 选件类在其缓冲区保留它们,并(如果缓冲区被指定为动态)展开缓冲区以响应对溢出。此外接通过释放以前缓冲区和替换来实现用一个新,较大一个。根据需要调整指针。
要求
标头: <streambuf>
命名空间: std