Namespaces
Variants

std::basic_spanbuf<CharT,Traits>:: seekoff

From cppreference.net
std::basic_spanbuf
Public member functions
Protected member functions
basic_spanbuf::seekoff
(C++23)
Non-member functions
protected :

pos_type seekoff ( off_type off, std:: ios_base :: seekdir dir,
std:: ios_base :: openmode which =

std:: ios_base :: in | std:: ios_base :: out ) override ;
(自 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 的计算方式如下:

此函数在成功时将下一个指针重新定位到获取和/或放置区域至 pbuf + newoff ,前提是 std::ios_base::in 和/或 std::ios_base::out which 中相应设置,其中 pbuf 是指向底层缓冲区起始位置的指针,若无底层缓冲区则为空指针值。

目录

参数

off - 设置下一个指针的相对位置
dir - 定义应用相对偏移量的基准位置。可以是以下常量之一:
常量 说明
beg 流的起始位置
end 流的结束位置
cur 流位置指示器的当前位置
which - 定义是否影响输入序列、输出序列或两者。可以是以下常量之一或其组合:
常量 说明
in 影响输入序列
out 影响输出序列

返回值

pos_type ( newoff ) 成功时返回, pos_type ( off_type ( - 1 ) ) 失败时返回。

示例

参阅

[virtual]
使用相对寻址重新定位输入序列、输出序列或两者中的下一个指针
( std::basic_stringbuf<CharT,Traits,Allocator> 的虚保护成员函数)
[virtual]
使用相对寻址重新定位输入序列、输出序列或两者中的下一个指针
( std::strstreambuf 的虚保护成员函数)