std::basic_spanbuf<CharT,Traits>:: seekoff
|
protected
:
pos_type seekoff
(
off_type off,
std::
ios_base
::
seekdir
dir,
|
(自 C++23 起) | |
如果可能,将下一个指针重新定位到获取和/或放置区域中,使其精确对应于缓冲区获取和/或放置区域起始位置、末尾位置或当前位置偏移
off
个字符的位置。
设
n
表示底层缓冲区中的
CharT
元素数量,若无底层缓冲区则为
0
,当以下情况发生时此函数执行失败:
-
要重新定位的获取和/或放置区的下一个指针为空且计算出的
newoff(见下文)不为零,这可能发生在没有底层缓冲区时,或当 * this 未以which要求的模式打开时,或 -
dir为 std::ios_base::cur 且 std::ios_base::in 和 std::ios_base::out 同时在which中被设置时,或 -
计算出的
newoff无法用off_type表示、小于零或大于n。
newoff
的计算方式如下:
-
若
dir为 std::ios_base::beg ,则newoff等于off。 -
若
dir为 std::ios_base::cur ,则newoff等于:-
pptr
(
)
-
pbase
(
)
+
off
(当
which中设置了 std::ios_base::out ),或 -
gptr
(
)
-
eback
(
)
+
off
(当
which中设置了 std::ios_base::in )。
-
pptr
(
)
-
pbase
(
)
+
off
(当
-
若
dir为 std::ios_base::end ,则newoff等于:- pptr ( ) - pbase ( ) + off (当 * this 的打开模式设置了 std::ios_base::out 但未设置 std::ios_base::in ),
- 否则为 off + n 。
此函数在成功时将下一个指针重新定位到获取和/或放置区域至
pbuf
+
newoff
,前提是
std::ios_base::in
和/或
std::ios_base::out
在
which
中相应设置,其中
pbuf
是指向底层缓冲区起始位置的指针,若无底层缓冲区则为空指针值。
目录 |
参数
| off | - | 设置下一个指针的相对位置 | ||||||||
| dir | - |
定义应用相对偏移量的基准位置。可以是以下常量之一:
|
||||||||
| which | - |
定义是否影响输入序列、输出序列或两者。可以是以下常量之一或其组合:
|
返回值
pos_type ( newoff ) 成功时返回, pos_type ( off_type ( - 1 ) ) 失败时返回。
示例
|
本节内容不完整
原因:缺少示例 |
参阅
|
[virtual]
|
使用相对寻址重新定位输入序列、输出序列或两者中的下一个指针
(
std::basic_stringbuf<CharT,Traits,Allocator>
的虚保护成员函数)
|
|
[virtual]
|
使用相对寻址重新定位输入序列、输出序列或两者中的下一个指针
(
std::strstreambuf
的虚保护成员函数)
|