std::basic_ispanstream<CharT,Traits>::basic_ispanstream

来自cppreference.com

explicit basic_ispanstream( std::span<CharT> s, std::ios_base::openmode mode =
                                std::ios_base::in );
(1) (C++23 起)
template< class ROS >
explicit basic_ispanstream( ROS&& r );
(2) (C++23 起)
basic_ispanstream( basic_ispanstream&& rhs );
(3) (C++23 起)
basic_ispanstream( const basic_ispanstream& ) = delete;
(4) (C++23 起)

构造新的 basic_ispanstream

1)s 所引用的存储为包装的 std::basic_spanbuf 设备的初始底层缓冲区。以 basic_spanbuf<Char, Traits>(s, mode | std::ios_base::in) 构造包装的 std::basic_spanbuf 对象。
2)r 转换到 std::span<const CharT> 后所引用的存储为包装的 std::basic_spanbuf 设备的初始底层缓冲区。以模式 std::ios_base::in 打开包装的 std::basic_spanbuf 对象。此重载只有在 ROS 实现 borrowed_rangestd::convertible_to<ROS, std::span<CharT>>falsestd::convertible_to<ROS, std::span<const CharT>>true时才会参与重载决议 。
3) 移动构造函数。从 rhsstd::basic_istream 基类子对象和包装的 std::basic_spanbuf 移动构造对应的子对象,然后以 *this 中包装的 std::basic_spanbuf 的地址调用 set_rdbuf 以安装它。
4) 复制构造函数被删除。 basic_ispanstream 不可复制。

参数

s - 引用要作为流的初始底层缓冲区的存储的 std::span
r - 要用作流的初始底层缓冲区的 borrowed_range
mode - 指定打开模式。可以用下列常量或它们之间的逐位或:
常量 解释
app 每次写入前寻位到流结尾
binary 二进制模式打开
in 为读打开
out 为写打开
trunc 在打开时舍弃流的内容
ate 打开后立即寻位到流结尾
noreplace (C++23) 以独占模式打开
other - 要移动的另一 basic_ispanstream

异常

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

示例

参阅

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