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),或者在新的置放的區域可能會選擇將該字元,以便在下一個呼叫會使用。
定義使用在衍生類別 (Derived Class) 而異。 例如, filebuf 類別撰寫的字元至檔案,而 strstreambuf ,類別會在其緩衝區保留它們,然後 (如果緩衝區就是動態) 展開緩衝區以回應呼叫溢位。 這個增益集可以釋放舊緩衝區和取代它達到以新,較大的一個。 視需要調整指標。
需求
標題: <streambuf>
命名空間: std