std::basic_spanbuf<CharT,Traits>:: basic_spanbuf
From cppreference.net
<
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)
创建一个
basic_spanbuf
,用于管理由
buf
引用的底层缓冲区(如果
buf
为空则无底层缓冲区),并以
which
指定的模式打开。获取区和放置区的指针按下表设置,未提及的情况则设为空指针值:
|
打开模式中设置的位
(影响获取区指针) |
设置后的返回值 | ||
|---|---|---|---|
| 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 是否仍持有底层缓冲区由实现定义。
移动构造后 rhs 是否仍持有底层缓冲区由实现定义。
目录 |
参数
| buf | - | 指向底层缓冲区的 std::span 引用 | ||||||||||||||||
| rhs | - |
另一个
basic_spanbuf
|
||||||||||||||||
| which | - |
指定流打开模式。为位掩码类型,定义以下常量:
|
注释
这些构造函数通常由 std::basic_ispanstream 、 std::basic_ospanstream 和 std::basic_spanstream 的构造函数调用。
示例
|
本节内容不完整
原因:缺少示例 |
参见
构造
basic_ispanstream
(
std::basic_ispanstream<CharT,Traits>
的公开成员函数)
|
|
构造
basic_ospanstream
(
std::basic_ospanstream<CharT,Traits>
的公开成员函数)
|
|
构造
basic_spanstream
(
std::basic_spanstream<CharT,Traits>
的公开成员函数)
|