protected virtual member function
<streambuf> <iostream>
從流緩衝區獲取字元並在下溢時前進位置
這是由其他成員函式呼叫的虛擬函式,用於獲取*受控輸入序列*中的當前字元,然後將位置指示符前進到下一個字元。
當*獲取指標*(gptr)沒有可用的讀取位置時,像sbumpc這樣的公共成員函式會呼叫它來請求一個新字元。
它在basic_streambuf中的預設行為是呼叫成員underflow,返回相同的值,但在成功時將位置指示符前進到下一個字元。派生類可以根據需要重寫此行為以實現不同的行為。
它在basic_streambuf中的行為與以下實現相同:
1 2 3 4 5
|
int_type uflow() {
if ( underflow() == traits_type::eof() ) return traits_type::eof();
gbump(1);
return traits_type::to_int_type(gptr()[-1]);
}
|
資料競爭
修改*流緩衝區*物件。
同時訪問同一*流緩衝區*物件可能會導致資料競爭。
異常安全
基本保證:如果丟擲異常,*流緩衝區*處於有效狀態。