std::basic_streambuf<CharT,Traits>:: pbackfail
|
protected
:
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) ) ; |
||
此函数仅在满足以下任一条件时方可调用:
- gptr ( ) 为 空指针 ,
- gptr ( ) == eback ( ) ,或
- traits :: eq ( traits :: to_char_type ( c ) , gptr ( ) [ - 1 ] ) 返回 false 。
此函数由公共函数 sungetc() 和 sputbackc() (这两个函数又分别被 basic_istream::unget 和 basic_istream::putback 调用)在以下任一情况下调用:
pbackfail()
)。在此情况下,
pbackfail()
的作用是将获取区域回退一个字符,前提是关联的字符序列允许此操作(例如,基于文件的流缓冲区可以从文件重新加载缓冲区,并提前一个字符开始)。
pbackfail()
)。在此情况下,
pbackfail()
的作用是将字符
c
放入获取区域中紧邻
basic_streambuf::gptr()
之前的位置,并在可能的情况下修改关联的字符序列以反映此变更。这一过程可能涉及如第一种变体中所述的获取区域回退操作。
此函数的默认基类版本在所有情况下不执行任何操作并返回 Traits :: eof ( ) 。该函数由以下派生类重写: basic_stringbuf::pbackfail 、 basic_filebuf::pbackfail 、 strstreambuf::pbackfail ,且预期会由用户定义和第三方库的流类重写。
目录 |
参数
| ch | - | 要回退的字符,或仅请求回退时使用 Traits :: eof ( ) |
返回值
Traits :: eof ( ) 在失败时返回该值,成功时返回其他值。基类版本始终返回失败状态。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 问题报告 | 适用标准 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 32 | C++98 |
调用条件 '
traits
::
eq
(
*
gptr
(
)
,traits
::
to_char_type
(
c
)
)
返回 false ' 与 sputbackc() 的描述不匹配 |
已修正以匹配
描述内容 |
参见
|
[virtual]
|
回退输入序列以归还一个字符,不影响关联的文件
(
std::basic_filebuf<CharT,Traits>
的虚受保护成员函数)
|
|
[virtual]
|
将字符放回输入序列
(
std::basic_stringbuf<CharT,Traits,Allocator>
的虚受保护成员函数)
|
|
[virtual]
|
回退输入序列以归还一个字符
(
std::strstreambuf
的虚受保护成员函数)
|
|
将输入序列中的下一个指针向后移动一位
(公开成员函数) |
|
|
将一个字符放回输入序列
(公开成员函数) |