Skip to content

Commit 28f7db7

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 99eb036 commit 28f7db7

10 files changed

Lines changed: 4604 additions & 2574 deletions

File tree

lang/cpp26.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2026-05-18T09:47:33">
180-
2026年05月18日 09時47分33秒
179+
<span itemprop="datePublished" content="2026-05-20T09:07:22">
180+
2026年05月20日 09時07分22秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -1011,7 +1011,7 @@ <h3>型特性</h3>
10111011
<li><code><a href="../reference/type_traits.html">&lt;type_traits&gt;</a></code>に、共用体の指定されたメンバがアクティブかを定数式で判定するための関数として<code><a href="../reference/type_traits/is_within_lifetime.html">std::is_within_lifetime()</a></code>を追加</li>
10121012
<li><code><a href="../reference/type_traits.html">&lt;type_traits&gt;</a></code>に、仮想継承の関係を判定する<code><a href="../reference/type_traits/is_virtual_base_of.html">std::is_virtual_base_of</a></code>を追加</li>
10131013
<li><code><a href="../reference/type_traits.html">&lt;type_traits&gt;</a></code>に、<code><a href="../reference/type_traits/integral_constant.html">std::integral_constant</a></code>クラスを置き換える定数ラッパーとして<code><span href="https://cpprefjp.github.io/reference/type_traits/constant_wrapper.md.nolink">std::constant_wrapper</span></code>クラスを追加</li>
1014-
<li><code><a href="../reference/utility/index_sequence.html">std::index_sequence</a></code>クラスを<a href="cpp17/structured_bindings.html">構造化束縛</a><a href="cpp26/expansion_statements.html">template for文</a>で使用できるようにするため、タプルインタフェースの特殊化を追加</li>
1014+
<li><code><a href="../reference/utility/integer_sequence.html">std::integer_sequence</a></code>クラスを<a href="cpp17/structured_bindings.html">構造化束縛</a><a href="cpp26/expansion_statements.html">template for文</a>で使用できるようにするため、タプルインタフェースの特殊化を追加</li>
10151015
</ul>
10161016
<h3>制約</h3>
10171017
<ul>

lang/cpp26/feature_test_macros.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2026-05-18T03:32:26">
192-
2026年05月18日 03時32分26秒
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">
@@ -755,6 +755,12 @@ <h3>ライブラリ</h3>
755755
<td><code><a href="../../reference/inplace_vector.html">&lt;inplace_vector&gt;</a></code></td>
756756
</tr>
757757
<tr>
758+
<td><code>__cpp_lib_integer_sequence</code></td>
759+
<td><code>202511L</code></td>
760+
<td><code><a href="../../reference/utility/integer_sequence.html">std::integer_sequence</a></code><a href="../cpp17/structured_bindings.html">構造化束縛</a><a href="expansion_statements.html"><code>template for</code></a>で使用できるよう、タプルインタフェースの特殊化を追加</td>
761+
<td><code><a href="../../reference/utility.html">&lt;utility&gt;</a></code></td>
762+
</tr>
763+
<tr>
758764
<td><code>__cpp_lib_is_sufficiently_aligned</code></td>
759765
<td><code>202411L</code></td>
760766
<td><code><a href="../../reference/mdspan.html">&lt;mdspan&gt;</a></code>に、要素アクセスにアライメント保証を与える<code><a href="../../reference/mdspan/aligned_accessor.html">std::aligned_accessor</a></code>を追加</td>

reference/utility/integer_sequence.html

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;utility&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;cpp&#34;: [&#34;cpp14&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;38c27da54cea81f4abe96fdf76e4b04b0886965d&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;utility&gt;\n\nvoid g(int a, int b, int c)\n{\n std::cout &lt;&lt; a &lt;&lt; \&#34;, \&#34; &lt;&lt; b &lt;&lt; \&#34;, \&#34; &lt;&lt; c &lt;&lt; std::endl;\n}\n\ntemplate &lt;class T, T... Seq&gt;\nvoid f(std::integer_sequence&lt;T, Seq...&gt;)\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&lt;int, 0, 1, 2&gt;());\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;utility&#34;, &#34;integer_sequence&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;utility&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;cpp&#34;: [&#34;cpp14&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;38c27da54cea81f4abe96fdf76e4b04b0886965d&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;utility&gt;\n\nvoid g(int a, int b, int c)\n{\n std::cout &lt;&lt; a &lt;&lt; \&#34;, \&#34; &lt;&lt; b &lt;&lt; \&#34;, \&#34; &lt;&lt; c &lt;&lt; std::endl;\n}\n\ntemplate &lt;class T, T... Seq&gt;\nvoid f(std::integer_sequence&lt;T, Seq...&gt;)\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&lt;int, 0, 1, 2&gt;());\n}\n&#34;}, {&#34;id&#34;: &#34;6e56bab9bf4d1006778fe5bbc56f51d052fe8276&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;utility&gt;\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&lt;3&gt;();\n ((std::cout &lt;&lt; Index &lt;&lt; &#39; &#39;), ...);\n std::cout &lt;&lt; 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&lt;3&gt;()) {\n std::cout &lt;&lt; I &lt;&lt; &#39; &#39;;\n }\n std::cout &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;utility&#34;, &#34;integer_sequence&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,12 +188,12 @@
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">&lt;iostream&gt;</a></span>
239279
<span class="cp">#include <a href="../utility.html">&lt;utility&gt;</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">&lt;iostream&gt;</a></span>
304+
<span class="cp">#include <a href="../utility.html">&lt;utility&gt;</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">&lt;</span><span class="mi">3</span><span class="o">&gt;</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">&lt;&lt;</span><span class="w"> </span><span class="n">Index</span><span class="w"> </span><span class="o">&lt;&lt;</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">&lt;&lt;</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">&lt;</span><span class="mi">3</span><span class="o">&gt;</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">&lt;&lt;</span><span class="w"> </span><span class="n">I</span><span class="w"> </span><span class="o">&lt;&lt;</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">&lt;&lt;</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

Comments
 (0)