Namespaces
Variants

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

From cppreference.net

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を使用可能:
定数 説明
app 各書き込み前にストリームの終端へシークする
binary バイナリモード でオープンする
in 読み取り用にオープンする
out 書き込み用にオープンする
trunc オープン時にストリームの内容を破棄する
ate オープン直後にストリームの終端へシークする
noreplace (C++23) 排他モードでオープンする
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> の公開メンバ関数)