Namespaces
Variants

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

From cppreference.net
std::basic_spanbuf
Public member functions
basic_spanbuf::basic_spanbuf
(C++23)
Protected member functions
Non-member functions
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 起)
(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 是否仍持有底层缓冲区由实现定义。

目录

参数

buf - 指向底层缓冲区的 std::span 引用
rhs - 另一个 basic_spanbuf
which - 指定流打开模式。为位掩码类型,定义以下常量:
常量 说明
app 每次写入前定位到流末尾
binary 二进制模式 打开
in 为读取打开
out 为写入打开
trunc 打开时清空流内容
ate 打开后立即定位到流末尾
noreplace (C++23) 以独占模式打开

注释

这些构造函数通常由 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> 的公开成员函数)