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

来自cppreference.com
< cpp‎ | io‎ | basic spanbuf
protected:
std::basic_streambuf<CharT, Traits>* setbuf( CharT *s, std::streamsize n ) override;
(C++23 起)

使 basic_spanbuf 实施缓冲区 [ss + n) 上的 I/O。等价地调用 this->span(std::span<CharT>(s, n)) 然后返回 this

打开模式中设置的位
(影响指向获取区的指针)
设置后的返回值
eback() gptr() egptr()
std::ios_base::in s s s + n
打开模式中设置的位
(影响指向放置区的指针)
设置后的返回值
pbase() pptr() epptr()
std::ios_base::out && !std::ios_base::ate s s s + n
std::ios_base::out && std::ios_base::ate s s + n s + n

此函数为受保护的虚函数,只可以通过 pubsetbuf() 或派生自 std::basic_spanbuf 的用户定义类的成员函数调用它。

参数

s - 指向用户提供的缓冲区的首个 CharT 的指针
n - 用户提供的缓冲区中的 CharT 元素数量

返回值

this

注解

弃用的流缓冲 std::strstreambuf 或 boost.IOStreams 设备 boost::basic_array 亦能实现用户提供的 char 数组上的 I/O 缓冲。

示例

参阅

调用 setbuf()
(std::basic_streambuf<CharT,Traits> 的公开成员函数)
[虚]
试图以数组替换受控字符序列
(std::basic_stringbuf<CharT,Traits,Allocator> 的虚受保护成员函数)
[虚]
尝试以数组替换受控制字符序列
(std::strstreambuf 的虚受保护成员函数)