std::basic_ispanstream<CharT,Traits>:: basic_ispanstream
From cppreference.net
<
cpp
|
io
|
basic ispanstream
|
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
设备的初始底层缓冲区。包装的
std::basic_spanbuf
对象被构造为
basic_spanbuf
<
Char, Traits
>
(
s, mode
|
std::
ios_base
::
in
)
。
2)
使用
r
转换后所引用的存储作为包装的
std::basic_spanbuf
设备的初始底层缓冲区。包装的
std::basic_spanbuf
对象以
std::ios_base::in
模式打开。此重载仅当
ROS
满足
borrowed_range
概念、
std::
convertible_to
<
ROS,
std::
span
<
CharT
>>
为
false
且
std::
convertible_to
<
ROS,
std::
span
<
const
CharT
>>
为
true
时参与重载决议。
3)
移动构造函数。移动构造
std::basic_istream
基类子对象及包装的
std::basic_spanbuf
对象(从
rhs
对应对象),随后调用
set_rdbuf
并传入当前对象
*
this
中包装的
std::basic_spanbuf
地址以完成安装。
4)
复制构造函数被删除。
basic_ispanstream
不可复制。
目录 |
参数
| s | - | std::span 引用将用作流初始底层缓冲区的存储空间 | ||||||||||||||||
| r | - |
将用作流初始底层缓冲区的
borrowed_range
|
||||||||||||||||
| mode | - |
指定流打开模式。可使用以下常量及其按位或组合:
|
||||||||||||||||
| other | - |
要移动来源的另一个
basic_ispanstream
|
异常
可能抛出实现定义的异常。
示例
运行此代码
#include <print> #include <spanstream> #include <string> int main() { std::ispanstream is("1 2 3 abc"); int i, j, k; std::string w; is >> i >> j >> k >> w; std::print("i={}, j={}, k={}, w={}", i, j, k, w); }
输出:
i=1, j=2, k=3, w=abc
参见
构造
basic_spanbuf
对象
(
std::basic_spanbuf<CharT,Traits>
的公开成员函数)
|