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)
ラップされた
std::basic_spanbuf
デバイスの初期基盤バッファとして、
s
によって参照されるストレージを使用します。ラップされた
std::basic_spanbuf
オブジェクトは
basic_spanbuf
<
Char, Traits
>
(
s, mode
|
std::
ios_base
::
in
)
として構築されます。
2)
変換後に
r
が参照するストレージを
std::
span
<
const
CharT
>
として使用し、ラップされた
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 | - |
ストリームのオープンモードを指定する。以下の定数とそれらのビット単位のORを使用可能:
|
||||||||||||||||
| 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>
の公開メンバ関数)
|