protected virtual member function
<sstream>

std::basic_stringbuf::pbackfail

int_type pbackfail (int_type c = traits_type::eof());
將字元放回
將*get pointer*(gptr)向後移動一位,指向前一個字元。如果該basic_stringbuf物件是用ios_base::out構造的,則會將c儲存在該位置。

如果該basic_stringbuf物件不是用ios_base::out構造的,則c必須與putback位置的字元匹配,或者為*end-of-file*值(traits_type::eof())。否則,該函式將失敗。該函式使用traits_type::eq進行比較,並在需要時將c透過traits_type::to_char_type進行轉換。

如果*get pointer*在呼叫之前已到達字元序列的開頭,該函式也會失敗。

失敗時,該函式返回*end-of-file*值(traits_type::eof()),而不改變*get pointer*(gptr)。

當*get pointer*(gptr)沒有可用的putback位置,或者要放回的字元與緩衝區中的字元不匹配時,basic_streambuf的公有成員函式(如sungetcsputbackc)會呼叫此虛擬函式。

引數

c
要放回的字元,或者*檔案結束符*值(traits_type::eof()),用於保留回退位置的字元值。
成員型別int_type是能夠表示任何字元值或特殊*檔案結束*符的整型。

返回值

成功時,返回traits_type::not_eof(c)
如果失敗,該函式返回*檔案結束符*值(traits_type::eof())。
成員型別int_type是能夠表示任何字元值或特殊*檔案結束*符的整型。

資料競爭

修改 basic_stringbuf 物件。
併發訪問同一物件可能導致資料競爭。

異常安全

基本保證:如果丟擲異常,物件處於有效狀態。

另見