basic_istringstream()
: basic_istringstream(ios_base::in) {} // (1) C++11
explicit basic_istringstream(
ios_base::openmode which); // (2) C++11
explicit basic_istringstream(
ios_base::openmode which = ios_base::in); // (1)+(2) C++03
explicit basic_istringstream(
const basic_string<CharT, Traits, Allocator>& s,
ios_base::openmode which = ios_base::in); // (2) C++03
explicit basic_istringstream(
basic_string<CharT, Traits, Allocator>&& s,
ios_base::openmode which = ios_base::in); // (3) C++20
basic_istringstream(
ios_base::openmode which,
const Allocator& a); // (4) C++20
explicit basic_istringstream(
const basic_string<CharT, Traits, Allocator>& s,
const Allocator& a)
: basic_istringstream(s, ios_base::in, a) {} // (5) C++20
explicit basic_istringstream(
const basic_string<CharT, Traits, Allocator>& s,
ios_base::openmode which,
const Allocator& a); // (6) C++20
template<class SAlloc>
explicit basic_istringstream(
const basic_string<CharT, Traits, SAlloc>& s,
ios_base::openmode which = ios_base::in); // (7) C++20
template<class SAlloc>
basic_istringstream(
const basic_string<CharT, Traits, SAlloc>& s,
const Allocator& a)
: basic_istringstream(s, ios_base::in, a) {} // (8) C++20
template<class SAlloc>
basic_istringstream(
const basic_string<CharT, Traits, SAlloc>& s,
ios_base::openmode which,
const Allocator& a); // (9) C++20
basic_istringstream(basic_istringstream&& rhs); // (10) C++11
template<class T>
explicit basic_istringstream(
const T& t,
ios_base::openmode which = ios_base::in); // (11) C++26
template<class T>
basic_istringstream(
const T& t,
const Allocator& a); // (12) C++26
template<class T>
basic_istringstream(
const T& t,
ios_base::openmode which,
const Allocator& a); // (13) C++26
概要
basic_istringstreamオブジェクトを構築する。
- (1) : デフォルトコンストラクタ
- (2) : 指定されたモードで構築する
- (3) : 入力文字列として
std::basic_stringオブジェクトのコピーを指定して構築する - (4) : 指定されたモードとアロケータで構築する
- (5) : 入力文字列として
std::basic_stringオブジェクトのコピーと、アロケータを指定して構築する - (6) : 入力文字列として
std::basic_stringオブジェクトのコピー、モード、アロケータを指定して構築する - (7) : 入力文字列として
Allocatorに変換可能なアロケータをもつstd::basic_stringオブジェクトのコピーと、モードを指定して構築する - (8) : 入力文字列として
Allocatorに変換可能なアロケータをもつstd::basic_stringオブジェクトのコピーと、アロケータを指定して構築する - (9) : 入力文字列として
Allocatorに変換可能なアロケータをもつstd::basic_stringオブジェクトのコピー、モード、アロケータを指定して構築する - (10) : ムーブコンストラクタ
- (11) : 入力文字列として
std::basic_string_viewに変換可能な文字列と、モードを指定して構築する - (12) : 入力文字列として
std::basic_string_viewに変換可能な文字列と、アロケータを指定して構築する - (13) : 入力文字列として
std::basic_string_viewに変換可能な文字列、モード、アロケータを指定して構築する
テンプレートパラメータ制約
- (11), (12), (13) :
is_convertible_v<const T&, basic_string_view<CharT, Traits>>がtrueであること
効果
- (1) : 内部の
basic_stringbufオブジェクトをbasic_stringbuf<CharT, Traits, Allocator>(ios_base::in)で構築する - (2) : 内部の
basic_stringbufオブジェクトをbasic_stringbuf<CharT, Traits, Allocator>(which | ios_base::in)で構築する - (3) : 内部の
basic_stringbufオブジェクトをbasic_stringbuf<CharT, Traits, Allocator>(s, which | ios_base::in)で構築する - (4) : 内部の
basic_stringbufオブジェクトをbasic_stringbuf<CharT, Traits, Allocator>(std::move(s), which | ios_base::in)で構築する - (5) : 内部の
basic_stringbufオブジェクトをbasic_stringbuf<CharT, Traits, Allocator>(which | ios_base::in, a)で構築する - (6), (7), (8), (9) : 各引数が対応する
basic_stringbufのコンストラクタに渡される - (10) :
rhsからbasic_istringstreamオブジェクトをムーブ構築する - (11) :
basic_string_view<CharT, Traits>(t)で文字列を初期化し、モードはwhich | ios_base::inに設定する - (12) :
basic_string_view<CharT, Traits>(t)で文字列を初期化し、モードはios_base::in、アロケータはaに設定する - (13) :
basic_string_view<CharT, Traits>(t)で文字列を初期化し、モードはwhich | ios_base::in、アロケータはaに設定する
例
基本的な使い方
#include <iostream>
#include <sstream>
int main()
{
// (1) デフォルト構築
std::istringstream ss1;
// (3) 文字列を指定して構築
std::istringstream ss2("initial text");
std::string value;
ss2 >> value;
std::cout << value << std::endl;
}
出力
initial
string_viewからの構築 (C++26)
#include <iostream>
#include <sstream>
#include <string_view>
int main()
{
// 文字列リテラルから構築
std::istringstream ss1{"Hello World"};
std::string s1;
ss1 >> s1;
std::cout << s1 << std::endl;
// string_viewから構築
std::string_view sv = "Hello World";
std::istringstream ss2{sv};
std::string s2;
ss2 >> s2;
std::cout << s2 << std::endl;
}
出力
Hello
Hello