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

< cpp‎ | io‎ | basic spanbuf

protected: std::basic_streambuf<CharT, Traits>* setbuf( CharT *s, std::streamsize n ) override; |  | (C++23 起)

使 `basic_spanbuf` 进行缓冲区 [`s`, `s + 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 缓冲。

### 示例

| 本节未完成 原因：暂无示例

### 参阅

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