6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["sstream"], "namespace": ["std"], "class": ["basic_istringstream"], "id-type": ["function"]}, "sources": [{"id": "30e82642655cbc0828d793bed4c8c6a81648c883", "source": "#include <iostream>\n#include <sstream>\n\nint main()\n{\n // (1) \u30c7\u30d5\u30a9\u30eb\u30c8\u69cb\u7bc9\n std::istringstream ss1;\n\n // (3) \u6587\u5b57\u5217\u3092\u6307\u5b9a\u3057\u3066\u69cb\u7bc9\n std::istringstream ss2(\"initial text\");\n\n int value;\n ss2 >> value;\n std::cout << value << std::endl;\n}\n"}], "page_id": ["reference", "sstream", "basic_istringstream", "op_constructor"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["sstream"], "namespace": ["std"], "class": ["basic_istringstream"], "id-type": ["function"]}, "sources": [{"id": "dfcea72f996564a9973f939ad132b225bbaa2c78", "source": "#include <iostream>\n#include <sstream>\n\nint main()\n{\n // (1) \u30c7\u30d5\u30a9\u30eb\u30c8\u69cb\u7bc9\n std::istringstream ss1;\n\n // (3) \u6587\u5b57\u5217\u3092\u6307\u5b9a\u3057\u3066\u69cb\u7bc9\n std::istringstream ss2(\"initial text\");\n\n std::string value;\n ss2 >> value;\n std::cout << value << std::endl;\n}\n"}, {"id": "b04c92d3f05fee1c5d8fcaa71472d30fdb7d9d59", "source": "#include <iostream>\n#include <sstream>\n#include <string_view>\n\nint main()\n{\n // \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u304b\u3089\u69cb\u7bc9\n std::istringstream ss1{\"Hello World\"};\n std::string s1;\n ss1 >> s1;\n std::cout << s1 << std::endl;\n\n // string_view\u304b\u3089\u69cb\u7bc9\n std::string_view sv = \"Hello World\";\n std::istringstream ss2{sv};\n std::string s2;\n ss2 >> s2;\n std::cout << s2 << std::endl;\n}\n"}], "page_id": ["reference", "sstream", "basic_istringstream", "op_constructor"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
200200
201201 < p class ="text-right "> < small >
202202 最終更新日時(UTC):
203- < span itemprop ="datePublished " content ="2025-06-05T03:37:16 ">
204- 2025年06月05日 03時37分16秒
203+ < span itemprop ="datePublished " content ="2025-06-12T08:40:59 ">
204+ 2025年06月12日 08時40分59秒
205205 </ span >
206206 < br />
207207 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
272272 < span class ="k "> const</ span > < span class ="n "> Allocator</ span > < span class ="o "> &</ span > < span class ="n "> a</ span > < span class ="p "> );</ span > < span class ="c1 "> // (9) C++20</ span >
273273
274274< span class ="n "> basic_istringstream</ span > < span class ="p "> (</ span > < span class ="n "> basic_istringstream</ span > < span class ="o "> &&</ span > < span class ="n "> rhs</ span > < span class ="p "> );</ span > < span class ="c1 "> // (10) C++11</ span >
275+
276+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> T</ span > < span class ="o "> ></ span >
277+ < span class ="k "> explicit</ span > < span class ="n "> basic_istringstream</ span > < span class ="p "> (</ span >
278+ < span class ="k "> const</ span > < span class ="n "> T</ span > < span class ="o "> &</ span > < span class ="n "> t</ span > < span class ="p "> ,</ span >
279+ < span class ="n "> < a href ="../../ios/ios_base.html "> ios_base</ a > </ span > < span class ="o "> ::</ span > < span class ="n "> openmode</ span > < span class ="n "> which</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="../../ios/ios_base.html "> ios_base</ a > </ span > < span class ="o "> ::</ span > < span class ="n "> in</ span > < span class ="p "> );</ span > < span class ="c1 "> // (11) C++26</ span >
280+
281+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> T</ span > < span class ="o "> ></ span >
282+ < span class ="n "> basic_istringstream</ span > < span class ="p "> (</ span >
283+ < span class ="k "> const</ span > < span class ="n "> T</ span > < span class ="o "> &</ span > < span class ="n "> t</ span > < span class ="p "> ,</ span >
284+ < span class ="k "> const</ span > < span class ="n "> Allocator</ span > < span class ="o "> &</ span > < span class ="n "> a</ span > < span class ="p "> );</ span > < span class ="c1 "> // (12) C++26</ span >
285+
286+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> T</ span > < span class ="o "> ></ span >
287+ < span class ="n "> basic_istringstream</ span > < span class ="p "> (</ span >
288+ < span class ="k "> const</ span > < span class ="n "> T</ span > < span class ="o "> &</ span > < span class ="n "> t</ span > < span class ="p "> ,</ span >
289+ < span class ="n "> < a href ="../../ios/ios_base.html "> ios_base</ a > </ span > < span class ="o "> ::</ span > < span class ="n "> openmode</ span > < span class ="n "> which</ span > < span class ="p "> ,</ span >
290+ < span class ="k "> const</ span > < span class ="n "> Allocator</ span > < span class ="o "> &</ span > < span class ="n "> a</ span > < span class ="p "> );</ span > < span class ="c1 "> // (13) C++26</ span >
275291</ code > </ pre > </ div >
276292</ p >
277293< h2 > 概要</ h2 >
278294< p > < code > basic_istringstream</ code > オブジェクトを構築する。</ p >
295+ < ul >
296+ < li > (1) : デフォルトコンストラクタ</ li >
297+ < li > (2) : 指定されたモードで構築する</ li >
298+ < li > (3) : 入力文字列として< code > < a href ="../../string/basic_string.html "> std::basic_string</ a > </ code > オブジェクトのコピーを指定して構築する</ li >
299+ < li > (4) : 指定されたモードとアロケータで構築する</ li >
300+ < li > (5) : 入力文字列として< code > < a href ="../../string/basic_string.html "> std::basic_string</ a > </ code > オブジェクトのコピーと、アロケータを指定して構築する</ li >
301+ < li > (6) : 入力文字列として< code > < a href ="../../string/basic_string.html "> std::basic_string</ a > </ code > オブジェクトのコピー、モード、アロケータを指定して構築する</ li >
302+ < li > (7) : 入力文字列として< code > Allocator</ code > に変換可能なアロケータをもつ< code > < a href ="../../string/basic_string.html "> std::basic_string</ a > </ code > オブジェクトのコピーと、モードを指定して構築する</ li >
303+ < li > (8) : 入力文字列として< code > Allocator</ code > に変換可能なアロケータをもつ< code > < a href ="../../string/basic_string.html "> std::basic_string</ a > </ code > オブジェクトのコピーと、アロケータを指定して構築する</ li >
304+ < li > (9) : 入力文字列として< code > Allocator</ code > に変換可能なアロケータをもつ< code > < a href ="../../string/basic_string.html "> std::basic_string</ a > </ code > オブジェクトのコピー、モード、アロケータを指定して構築する</ li >
305+ < li > (10) : ムーブコンストラクタ</ li >
306+ < li > (11) : 入力文字列として< code > < a href ="../../string_view/basic_string_view.html "> std::basic_string_view</ a > </ code > に変換可能な文字列と、モードを指定して構築する</ li >
307+ < li > (12) : 入力文字列として< code > < a href ="../../string_view/basic_string_view.html "> std::basic_string_view</ a > </ code > に変換可能な文字列と、アロケータを指定して構築する</ li >
308+ < li > (13) : 入力文字列として< code > < a href ="../../string_view/basic_string_view.html "> std::basic_string_view</ a > </ code > に変換可能な文字列、モード、アロケータを指定して構築する</ li >
309+ </ ul >
310+ < h2 > < a class ="cpprefjp-defined-word " data-desc ="関数等の意味論を構成する要素の1つ。Constraints。関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件 "> テンプレートパラメータ制約</ a > </ h2 >
311+ < ul >
312+ < li > (11), (12), (13) : < code > is_convertible_v<const T&, basic_string_view<CharT, Traits>></ code > が< code > true</ code > であること</ li >
313+ </ ul >
279314< h2 > 効果</ h2 >
280315< ul >
281316< li > (1) : 内部の< code > basic_stringbuf</ code > オブジェクトを< code > basic_stringbuf<CharT, Traits, Allocator>(ios_base::in)</ code > で構築する</ li >
282317< li > (2) : 内部の< code > basic_stringbuf</ code > オブジェクトを< code > basic_stringbuf<CharT, Traits, Allocator>(which | ios_base::in)</ code > で構築する</ li >
283318< li > (3) : 内部の< code > basic_stringbuf</ code > オブジェクトを< code > basic_stringbuf<CharT, Traits, Allocator>(s, which | ios_base::in)</ code > で構築する</ li >
284319< li > (4) : 内部の< code > basic_stringbuf</ code > オブジェクトを< code > basic_stringbuf<CharT, Traits, Allocator>(std::move(s), which | ios_base::in)</ code > で構築する</ li >
285320< li > (5) : 内部の< code > basic_stringbuf</ code > オブジェクトを< code > basic_stringbuf<CharT, Traits, Allocator>(which | ios_base::in, a)</ code > で構築する</ li >
286- < li > (6), (7), (8), (9), (10) : 各引数が対応する< code > basic_stringbuf</ code > のコンストラクタに渡される</ li >
287- < li > (11) : < code > rhs</ code > から< code > basic_istringstream</ code > オブジェクトをムーブ構築する</ li >
321+ < li > (6), (7), (8), (9) : 各引数が対応する< code > basic_stringbuf</ code > のコンストラクタに渡される</ li >
322+ < li > (10) : < code > rhs</ code > から< code > basic_istringstream</ code > オブジェクトをムーブ構築する</ li >
323+ < li > (11) : < code > basic_string_view<CharT, Traits>(t)</ code > で文字列を初期化し、モードは< code > which | ios_base::in</ code > に設定する</ li >
324+ < li > (12) : < code > basic_string_view<CharT, Traits>(t)</ code > で文字列を初期化し、モードは< code > ios_base::in</ code > 、アロケータは< code > a</ code > に設定する</ li >
325+ < li > (13) : < code > basic_string_view<CharT, Traits>(t)</ code > で文字列を初期化し、モードは< code > which | ios_base::in</ code > 、アロケータは< code > a</ code > に設定する</ li >
288326</ ul >
289327< h2 > 例</ h2 >
290- < p > < div class ="yata " id ="30e82642655cbc0828d793bed4c8c6a81648c883 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
328+ < h3 > 基本的な使い方</ h3 >
329+ < p > < div class ="yata " id ="dfcea72f996564a9973f939ad132b225bbaa2c78 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
291330< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../sstream.html "> <sstream></ a > </ span > < span class ="cp "> </ span >
292331
293332< span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
@@ -298,18 +337,48 @@ <h2>例</h2>
298337 < span class ="c1 "> // (3) 文字列を指定して構築</ span >
299338 < span class ="n "> < a href ="../basic_istringstream.html "> std::istringstream</ a > </ span > < span class ="n "> ss2</ span > < span class ="p "> (</ span > < span class ="s "> "initial text"</ span > < span class ="p "> );</ span >
300339
301- < span class ="kt " > int </ span > < span class ="n "> value</ span > < span class ="p "> ;</ span >
340+ < span class ="n " > < a href =" ../../string/basic_string.html " > std::string </ a > </ span > < span class ="n "> value</ span > < span class ="p "> ;</ span >
302341 < span class ="n "> ss2</ span > < span class ="o "> >></ span > < span class ="n "> value</ span > < span class ="p "> ;</ span >
303342 < span class ="n "> < a href ="../../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> value</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
304343< span class ="p "> }</ span >
305344</ code > </ pre > </ div >
306345</ div > </ p >
307- < h3 > 出力</ h3 >
346+ < h4 > 出力</ h4 >
308347< p > < pre > < code > initial
309348</ code > </ pre > </ p >
349+ < h3 > string_viewからの構築 (C++26)</ h3 >
350+ < p > < div class ="yata " id ="b04c92d3f05fee1c5d8fcaa71472d30fdb7d9d59 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
351+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../sstream.html "> <sstream></ a > </ span > < span class ="cp "> </ span >
352+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../string_view.html "> <string_view></ a > </ span > < span class ="cp "> </ span >
353+
354+ < span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
355+ < span class ="p "> {</ span >
356+ < span class ="c1 "> // 文字列リテラルから構築</ span >
357+ < span class ="n "> < a href ="../basic_istringstream.html "> std::istringstream</ a > </ span > < span class ="n "> ss1</ span > < span class ="p "> {</ span > < span class ="s "> "Hello World"</ span > < span class ="p "> };</ span >
358+ < span class ="n "> < a href ="../../string/basic_string.html "> std::string</ a > </ span > < span class ="n "> s1</ span > < span class ="p "> ;</ span >
359+ < span class ="n "> ss1</ span > < span class ="o "> >></ span > < span class ="n "> s1</ span > < span class ="p "> ;</ span >
360+ < span class ="n "> < a href ="../../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> s1</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
361+
362+ < span class ="c1 "> // < a href ="../../string_view/basic_string_view.html "> string_view</ a > から構築</ span >
363+ < span class ="n "> < a href ="../../string_view/basic_string_view.html "> std::string_view</ a > </ span > < span class ="n "> sv</ span > < span class ="o "> =</ span > < span class ="s "> "Hello World"</ span > < span class ="p "> ;</ span >
364+ < span class ="n "> < a href ="../basic_istringstream.html "> std::istringstream</ a > </ span > < span class ="n "> ss2</ span > < span class ="p "> {</ span > < span class ="n "> sv</ span > < span class ="p "> };</ span >
365+ < span class ="n "> < a href ="../../string/basic_string.html "> std::string</ a > </ span > < span class ="n "> s2</ span > < span class ="p "> ;</ span >
366+ < span class ="n "> ss2</ span > < span class ="o "> >></ span > < span class ="n "> s2</ span > < span class ="p "> ;</ span >
367+ < span class ="n "> < a href ="../../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> s2</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
368+ < span class ="p "> }</ span >
369+ </ code > </ pre > </ div >
370+ </ div > </ p >
371+ < h4 > 出力</ h4 >
372+ < p > < pre > < code > Hello
373+ Hello
374+ </ code > </ pre > </ p >
310375< h2 > 参照</ h2 >
311376< ul >
312377< li > < a href ="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf " target ="_blank "> P0408R7 Efficient Access to < code > basic_stringbuf</ code > 's Buffer</ a > </ li >
378+ < li > < a href ="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2495r3.pdf " target ="_blank "> P2495R3 Interfacing stringstreams with < code > string_view</ code > </ a > < ul >
379+ < li > C++26で< code > < a href ="../../string_view/basic_string_view.html "> std::string_view</ a > </ code > に対応した</ li >
380+ </ ul >
381+ </ li >
313382</ ul > </ div >
314383
315384 </ div >
0 commit comments