std::strstreambuf::pbackfail
提供: cppreference.com
< cpp | io | strstreambuf
protected: virtual int_type pbackfail( int_type c = EOF ); |
||
このプロテクテッド仮想関数はパブリック関数 basic_streambuf::sungetc および basic_streambuf::sputbackc によって呼ばれます (そしてそれは basic_istream::unget および basic_istream::putback によって呼ばれます)。
a) まず、 putback 位置が存在するかどうか調べ、それが実際には存在しない場合は、失敗します (strstreambuf は読み直す外部文字ソースを持ちません)。
b) 呼び出し元が間違っており、 putback 位置が実際には利用可能な場合は、例えば gbump(-1) を呼ぶことによって、単純にbasic_streambuf::gptr() をデクリメントします。
2) 呼び出し元は以前取得した文字と異なる文字の putback を試みます (
pbackfail()
は戻す必要のある文字を指定して呼ばれます)。 この場合、a) まず、 putback 位置が存在するかどうか調べ、存在しない場合は、失敗します。
b) その後、 putback 位置に何の文字があるかを調べます。 そこに保持されている文字がすでに
(char)c
と等しい場合は、単純に basic_streambuf::gptr() をデクリメントします。c) そうでなく、バッファが変更不可能 (この strstreambuf が文字列リテラルや他の何らかの const から構築された) な場合は、失敗します。
目次 |
[編集] 引数
c | - | 戻す文字、または get 領域の後退が要求された��とを示す Traits::eof() |
[編集] 戻り値
成功した場合は c、ただし c
が EOF であった場合は EOF 以外の未規定の値が返されます。
失敗した場合は EOF。
[編集] 例
This section is incomplete Reason: no example |
[編集] 関連項目
[仮想] |
入力シーケンスに文字を戻します。 入力シーケンスを変更する可能性があります ( std::basic_streambuf<CharT,Traits> の仮想プロテクテッドメンバ関数)
|
入力シーケンスの次ポインタを1つ前に移動させます ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
入力シーケンスに文字をひとつ戻します ( std::basic_streambuf<CharT,Traits> のパブリックメンバ関数)
| |
文字の抽出を取り消します ( std::basic_istream<CharT,Traits> のパブリックメンバ関数)
| |
入力ストリームに文字を戻します ( std::basic_istream<CharT,Traits> のパブリックメンバ関数)
|