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

来自cppreference.com
< cpp‎ | io‎ | basic spanbuf
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 所要求的模式打开时出现,或
  • dirstd::ios_base::curwhich 中一同设置了 std::ios_base::instd::ios_base::out ,或
  • 计算的 newoff 无法以 off_type 表示、小于零或大于 n

newoff 计算如下:

此函数在成功时重寻位指向获取和/或放置区的下一位置指针为 pbuf + newoff ,若在 which 中相应地设置了 std::ios_base::in 和/或 std::ios_base::out ,其中 pbuf 是指向底层缓冲区的指针,或若无底层缓冲区则为空指针值。

参数

off - 要设置下一位置指针到的相对位置
dir - 定义应用偏移到的基位置。它能为下列常量之一:
常量 解释
beg 流的开始
end 流的结尾
cur 流位置指示器的当前位置
which - 定义影响的是输入序列、输出序列还是两者。它能为下列常量之一或其组合:
常量 解释
in 影响输入序列
out 影响输出序列

返回值

成功时为 pos_type(newoff) ,失败时为 pos_type(off_type(-1))

示例

参阅

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