std::basic_spanbuf<CharT,Traits>::basic_spanbuf
来自cppreference.com
< cpp | io | basic spanbuf
basic_spanbuf() : basic_spanbuf(std::ios_base::in | std::ios_base::out) {} |
(1) | (C++23 起) |
explicit basic_spanbuf( std::ios_base::openmode which ) : basic_spanbuf(std::span<CharT>{}, which) {} |
(2) | (C++23 起) |
explicit basic_spanbuf( std::span<CharT> buf, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out ); |
(3) | (C++23 起) |
basic_spanbuf( const basic_spanbuf& ) = delete; |
(4) | (C++23 起) |
basic_spanbuf( basic_spanbuf&& rhs ); |
(5) | (C++23 起) |
1) 默认构造函数。创建无底层缓冲区且为输入和输出打开的
basic_spanbuf
。指向获取与放置区的指针被设为空指针值。2) 同 (1) ,除了
basic_spanbuf
以 which
所指定的模式打开。3) 创建管理
buf
所引用的底层缓冲区(或若 buf
为空则无底层缓冲区),并以 which
所指定的模式打开的 basic_spanbuf
。指向获取与放置区的指针按以下方式设置,或若表格中未提及则设置为空指针值:
打开模式中设置的位 (影响指向获取区的指针) |
设置后的返回值 | ||
---|---|---|---|
eback() | gptr() | egptr() | |
std::ios_base::in | s.data() | s.data() | s.data() + s.size() |
打开模式中设置的位 (影响指向放置区的指针) |
设置后的返回值 | ||
pbase() | pptr() | epptr() | |
std::ios_base::out && !std::ios_base::ate | s.data() | s.data() | s.data() + s.size() |
std::ios_base::out && std::ios_base::ate | s.data() | s.data() + s.size() | s.data() + s.size() |
4) 复制构造函数被删除。
basic_spanbuf
不可复制。5) 移动构造函数。从
rhs
的 std::basic_streambuf 基类子对象移动构造该基类子对象。指向获取与放置区的指针、打开模式及底层缓冲区(若存在)等同于 rhs
在构造前的。rhs
在移动构造后是否仍然保有底层缓冲区是实现定义的。参数
buf | - | 引用底层缓冲区的 std::span | ||||||||||||||
rhs | - | 另一 basic_spanbuf
| ||||||||||||||
which | - | 指定流打开模式。它是位掩码类型,定义下列常量:
|
注解
这些构造函数常由 std::basic_ispanstream、 std::basic_ospanstream 及 std::basic_spanstream 的构造函数调用
示例
本节未完成 原因:暂无示例 |
参阅
(C++23) |
构造 basic_ispanstream ( std::basic_ispanstream<CharT,Traits> 的公开成员函数) |
(C++23) |
构造 basic_ospanstream ( std::basic_ospanstream<CharT,Traits> 的公开成员函数) |
(C++23) |
构造 basic_spanstream ( std::basic_spanstream<CharT,Traits> 的公开成员函数) |