std::strstreambuf::pbackfail
提供: cppreference.com
<tbody>
</tbody>
protected: virtual int_type pbackfail( int_type c = EOF ); |
||
このプロテクテッド仮想関数はパブリック関数 basic_streambuf::sungetc および basic_streambuf::sputbackc によって呼ばれます (そしてそれは basic_istream::unget および basic_istream::putback によって呼ばれます)。
1) 呼び出し元は get 領域を1文字後退させることを要求しています (
pbackfail() が引数なしで、または EOF を引数として呼ばれます)。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>のパブリックメンバ関数)
|