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