Namespaces
Variants

std::basic_ospanstream<CharT,Traits>:: basic_ospanstream

From cppreference.net

explicit basic_ospanstream ( std:: span < CharT > s, std:: ios_base :: openmode mode =
std:: ios_base :: out ) ;
(1) (自 C++23 起)
basic_ospanstream ( basic_ospanstream && rhs ) ;
(2) (自 C++23 起)
basic_ospanstream ( const basic_ospanstream & ) = delete ;
(3) (自 C++23 起)

构造一个新的 basic_ospanstream

1) 使用 s 所引用的存储作为包装的 std::basic_spanbuf 设备的初始底层缓冲区。包装的 std::basic_spanbuf 对象被构造为 basic_spanbuf < Char, Traits > ( s, mode | std:: ios_base :: out )
2) 移动构造函数。移动构造 std::basic_ostream 基类子对象及包装的 std::basic_spanbuf 对象(从 rhs 对应对象移动),随后调用 set_rdbuf 并传入当前对象 * this 中包装的 std::basic_spanbuf 地址以完成安装。
3) 复制构造函数被删除。 basic_ospanstream 不可复制。

目录

参数

s - 指向将用作流初始底层缓冲区的存储空间的 std::span 引用
mode - 指定流打开模式。可使用以下常量及其按位或组合:
常量 说明
app 每次写入前定位到流末尾
binary 二进制模式 打开
in 为读取打开
out 为写入打开
trunc 打开时清空流内容
ate 打开后立即定位到流末尾
noreplace (C++23) 以独占模式打开
other - 要从中移动数据的另一个 basic_ospanstream 对象

异常

可能抛出实现定义的异常。

示例

#include <array>
#include <iostream>
#include <spanstream>
int main()
{
    std::array<char, 10> buffer;
    std::ospanstream os(buffer);
    os << "i=" << 1 << " j=" << 2 << '\n' << std::ends;
    std::cout << buffer.data();
}

输出:

i=1 j=2

参见

构造 basic_spanbuf 对象
( std::basic_spanbuf<CharT,Traits> 的公开成员函数)