6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["utility"], "namespace": ["std"], "id-type": ["class template"], "cpp": ["cpp14"]}, "sources": [{"id": "38c27da54cea81f4abe96fdf76e4b04b0886965d", "source": "#include <iostream>\n#include <utility>\n\nvoid g(int a, int b, int c)\n{\n std::cout << a << \", \" << b << \", \" << c << std::endl;\n}\n\ntemplate <class T, T... Seq>\nvoid f(std::integer_sequence<T, Seq...>)\n{\n // \u5b9a\u6570\u306e\u30b7\u30fc\u30b1\u30f3\u30b9{0, 1, 2}\u3092\u53d6\u308a\u51fa\u3057\u3066\u3001\u95a2\u6570g()\u306e\u5f15\u6570\u3068\u3057\u3066\u8ee2\u9001\n g(Seq...);\n}\n\nint main()\n{\n f(std::integer_sequence<int, 0, 1, 2>());\n}\n"}], "page_id": ["reference", "utility", "integer_sequence"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["utility"], "namespace": ["std"], "id-type": ["class template"], "cpp": ["cpp14"]}, "sources": [{"id": "38c27da54cea81f4abe96fdf76e4b04b0886965d", "source": "#include <iostream>\n#include <utility>\n\nvoid g(int a, int b, int c)\n{\n std::cout << a << \", \" << b << \", \" << c << std::endl;\n}\n\ntemplate <class T, T... Seq>\nvoid f(std::integer_sequence<T, Seq...>)\n{\n // \u5b9a\u6570\u306e\u30b7\u30fc\u30b1\u30f3\u30b9{0, 1, 2}\u3092\u53d6\u308a\u51fa\u3057\u3066\u3001\u95a2\u6570g()\u306e\u5f15\u6570\u3068\u3057\u3066\u8ee2\u9001\n g(Seq...);\n}\n\nint main()\n{\n f(std::integer_sequence<int, 0, 1, 2>());\n}\n"}, {"id": "6e56bab9bf4d1006778fe5bbc56f51d052fe8276", "source": "#include <iostream>\n#include <utility>\n\nint main()\n{\n // \u69cb\u9020\u5316\u675f\u7e1b\u3067\u6574\u6570\u30b7\u30fc\u30b1\u30f3\u30b9\u3092\u30d1\u30c3\u30af\u3068\u3057\u3066\u53d6\u308a\u51fa\u3059\n constexpr auto [...Index] = std::make_index_sequence<3>();\n ((std::cout << Index << ' '), ...);\n std::cout << std::endl;\n\n // template for\u6587\u3067\u6574\u6570\u30b7\u30fc\u30b1\u30f3\u30b9\u3092\u76f4\u63a5\u30a4\u30c6\u30ec\u30fc\u30c8\u3059\u308b\n template for (constexpr std::size_t I : std::make_index_sequence<3>()) {\n std::cout << I << ' ';\n }\n std::cout << std::endl;\n}\n"}], "page_id": ["reference", "utility", "integer_sequence"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
188188
189189 < p class ="text-right "> < small >
190190 最終更新日時(UTC):
191- < span itemprop ="datePublished " content ="2026-04-13T03:56:56 ">
192- 2026年04月13日 03時56分56秒
191+ < span itemprop ="datePublished " content ="2026-05-20T09:07:22 ">
192+ 2026年05月20日 09時07分22秒
193193 </ span >
194194 < br />
195195 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
196- < span itemprop ="name "> teruyamato0731 </ span >
196+ < span itemprop ="name "> Akira Takahashi </ span >
197197 </ span >
198198 が更新
199199 </ small > </ p >
@@ -229,12 +229,52 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成
229229< ul >
230230< li > < code > T</ code > は整数型であること。</ li >
231231</ ul >
232+ < h2 > タプルインタフェース</ h2 >
233+ < table border ="1 " bordercolor ="#888 " style ="border-collapse:collapse ">
234+ < thead >
235+ < tr >
236+ < th > 名前</ th >
237+ < th > 説明</ th >
238+ < th > 対応バージョン</ th >
239+ </ tr >
240+ </ thead >
241+ < tbody >
242+ < tr >
243+ < td > < code > < a href ="integer_sequence/tuple_size.html "> tuple_size</ a > </ code > </ td >
244+ < td > 静的な要素数取得(class template)</ td >
245+ < td > C++26</ td >
246+ </ tr >
247+ < tr >
248+ < td > < code > < a href ="integer_sequence/tuple_element.html "> tuple_element</ a > </ code > </ td >
249+ < td > 静的な要素の型取得(class template)</ td >
250+ < td > C++26</ td >
251+ </ tr >
252+ </ tbody >
253+ </ table >
254+ < h2 > 非メンバ関数</ h2 >
255+ < table border ="1 " bordercolor ="#888 " style ="border-collapse:collapse ">
256+ < thead >
257+ < tr >
258+ < th > 名前</ th >
259+ < th > 説明</ th >
260+ < th > 対応バージョン</ th >
261+ </ tr >
262+ </ thead >
263+ < tbody >
264+ < tr >
265+ < td > < code > < a href ="integer_sequence/get.html "> get</ a > </ code > </ td >
266+ < td > 指定したインデックスの整数値を取得する</ td >
267+ < td > C++26</ td >
268+ </ tr >
269+ </ tbody >
270+ </ table >
232271< h2 > 備考</ h2 >
233272< ul >
234273< li > C++17まで : テンプレートパラメータ < code > T</ code > が整数型でない場合の< a class ="cpprefjp-defined-word " data-desc ="未定義の動作。処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。 " href ="../../implementation-compliance.html#dfn-undefined-behavior "> 動作は未定義</ a > 。</ li >
235274< li > C++20から : < code > T</ code > が整数型でない場合、プログラムは< a class ="cpprefjp-defined-word " data-desc ="プログラムが適格でないこと。コンパイルエラーなどになる " href ="../../implementation-compliance.html#dfn-ill-formed "> 不適格</ a > となり、コンパイルエラーとなることが要求されるようになった。</ li >
236275</ ul >
237276< h2 > 例</ h2 >
277+ < h3 > 基本的な使い方</ h3 >
238278< p > < div class ="yata " id ="38c27da54cea81f4abe96fdf76e4b04b0886965d "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../iostream.html "> <iostream></ a > </ span >
239279< span class ="cp "> #include < a href ="../utility.html "> <utility></ a > </ span >
240280
@@ -256,9 +296,32 @@ <h2>例</h2>
256296< span class ="p "> }</ span >
257297</ code > </ pre > </ div >
258298</ div > </ p >
259- < h2 > 出力</ h2 >
299+ < h4 > 出力</ h4 >
260300< p > < pre > < code > 0, 1, 2
261301</ code > </ pre > </ p >
302+ < h3 > 構造化束縛と< code > template for</ code > 文で使用する (C++26)</ h3 >
303+ < p > < div class ="yata " id ="6e56bab9bf4d1006778fe5bbc56f51d052fe8276 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../iostream.html "> <iostream></ a > </ span >
304+ < span class ="cp "> #include < a href ="../utility.html "> <utility></ a > </ span >
305+
306+ < span class ="kt "> int</ span > < span class ="w "> </ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
307+ < span class ="p "> {</ span >
308+ < span class ="w "> </ span > < span class ="c1 "> // 構造化束縛で整数シーケンスをパックとして取り出す</ span >
309+ < span class ="w "> </ span > < span class ="k "> constexpr</ span > < span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="p "> [...</ span > < span class ="n "> Index</ span > < span class ="p "> ]</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> < a href ="make_index_sequence.html "> std::make_index_sequence</ a > </ span > < span class ="o "> <</ span > < span class ="mi "> 3</ span > < span class ="o "> ></ span > < span class ="p "> ();</ span >
310+ < span class ="w "> </ span > < span class ="p "> ((</ span > < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="w "> </ span > < span class ="o "> <<</ span > < span class ="w "> </ span > < span class ="n "> Index</ span > < span class ="w "> </ span > < span class ="o "> <<</ span > < span class ="w "> </ span > < span class ="sc "> ' '</ span > < span class ="p "> ),</ span > < span class ="w "> </ span > < span class ="p "> ...);</ span >
311+ < span class ="w "> </ span > < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="w "> </ span > < span class ="o "> <<</ span > < span class ="w "> </ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
312+
313+ < span class ="w "> </ span > < span class ="c1 "> // template for文で整数シーケンスを直接イテレートする</ span >
314+ < span class ="w "> </ span > < span class ="k "> template</ span > < span class ="w "> </ span > < span class ="k "> for</ span > < span class ="w "> </ span > < span class ="p "> (</ span > < span class ="k "> constexpr</ span > < span class ="w "> </ span > < span class ="n "> < a href ="../cstddef/size_t.html "> std::size_t</ a > </ span > < span class ="w "> </ span > < span class ="n "> I</ span > < span class ="w "> </ span > < span class ="o "> :</ span > < span class ="w "> </ span > < span class ="n "> < a href ="make_index_sequence.html "> std::make_index_sequence</ a > </ span > < span class ="o "> <</ span > < span class ="mi "> 3</ span > < span class ="o "> ></ span > < span class ="p "> ())</ span > < span class ="w "> </ span > < span class ="p "> {</ span >
315+ < span class ="w "> </ span > < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="w "> </ span > < span class ="o "> <<</ span > < span class ="w "> </ span > < span class ="n "> I</ span > < span class ="w "> </ span > < span class ="o "> <<</ span > < span class ="w "> </ span > < span class ="sc "> ' '</ span > < span class ="p "> ;</ span >
316+ < span class ="w "> </ span > < span class ="p "> }</ span >
317+ < span class ="w "> </ span > < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="w "> </ span > < span class ="o "> <<</ span > < span class ="w "> </ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
318+ < span class ="p "> }</ span >
319+ </ code > </ pre > </ div >
320+ </ div > </ p >
321+ < h4 > 出力</ h4 >
322+ < p > < pre > < code > 0 1 2
323+ 0 1 2
324+ </ code > </ pre > </ p >
262325< h2 > バージョン</ h2 >
263326< h3 > 言語</ h3 >
264327< ul >
@@ -275,6 +338,10 @@ <h2>参照</h2>
275338< ul >
276339< li > < a href ="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html " target ="_blank "> N3658 Compile-time integer sequences</ a > </ li >
277340< li > < a href ="https://wg21.link/p1460r1 " target ="_blank "> P1460R1 Mandating the Standard Library: Clause 20 - Utilities library</ a > </ li >
341+ < li > < a href ="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p1789r3.pdf " target ="_blank "> P1789R3 Library Support for Expansion Statements</ a > < ul >
342+ < li > C++26で< a href ="../../lang/cpp17/structured_bindings.html "> 構造化束縛</ a > と< a href ="../../lang/cpp26/expansion_statements.html "> < code > template for</ code > 文</ a > で使用できるよう、< code > tuple_size</ code > / < code > tuple_element</ code > / < code > get</ code > の特殊化を追加</ li >
343+ </ ul >
344+ </ li >
278345</ ul > </ div >
279346
280347 </ div >
0 commit comments