Skip to content

Commit 5423892

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent ba78a87 commit 5423892

File tree

4 files changed

+255
-79
lines changed

4 files changed

+255
-79
lines changed

reference/mdspan.html

Lines changed: 7 additions & 2 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="2024-02-27T15:48:24">
180-
2024年02月27日 15時48分24秒
179+
<span itemprop="datePublished" content="2024-07-18T10:05:39">
180+
2024年07月18日 10時05分39秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -222,6 +222,11 @@ <h2>多次元配列サイズ</h2>
222222
<td>全次元が動的な多次元配列のサイズを表す値 (alias template)</td>
223223
<td>C++23</td>
224224
</tr>
225+
<tr>
226+
<td><code><a href="mdspan/extents.html">dims</a></code></td>
227+
<td>全次元が動的な多次元配列のサイズを表す値 (alias template)</td>
228+
<td>C++26</td>
229+
</tr>
225230
</tbody>
226231
</table>
227232
<h2>レイアウトマッピング</h2>

reference/mdspan/extents.html

Lines changed: 18 additions & 4 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;mdspan&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;cpp&#34;: [&#34;cpp23&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;24f9c878ad4fdca1a18cc8019f06a1fe50eaa5d4&#34;, &#34;source&#34;: &#34;#include &lt;mdspan&gt;\n\nint main()\n{\n // \u56fa\u5b9a\u8981\u7d20\u6570 3x3 \u306e2\u6b21\u5143\u914d\u5217\u30b5\u30a4\u30ba\n std::extents&lt;size_t, 3, 3&gt; ext3x3;\n\n // \u52d5\u7684\u8981\u7d20\u6570\u304b\u3089\u306a\u308b2\u6b21\u5143\u914d\u5217\u30b5\u30a4\u30ba\u3092 4x2 \u3067\u521d\u671f\u5316\n std::dextents&lt;size_t, 2&gt; ext2d{4, 2};\n\n // 2\u500b\u306e\u52d5\u7684\u8981\u7d20\u6570(\u9ad8\u3055,\u5e45)\u3068\u9759\u7684\u8981\u7d20\u6570(RGBA=4)\u304b\u3089\u306a\u308b3\u6b21\u5143\u914d\u5217\u30b5\u30a4\u30ba\n using ColorImageExt = std::extents&lt;size_t, std::dynamic_extent, std::dynamic_extent, 4&gt;;\n ColorImageExt image_ext{128, 128};\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;mdspan&#34;, &#34;extents&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;mdspan&#34;], &#34;id-type&#34;: [&#34;class template&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;cpp&#34;: [&#34;cpp23&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;72f1b6e9f8e52f61c117c8263d016ed1df87104e&#34;, &#34;source&#34;: &#34;#include &lt;mdspan&gt;\n\nint main()\n{\n // \u56fa\u5b9a\u8981\u7d20\u6570 3x3 \u306e2\u6b21\u5143\u914d\u5217\u30b5\u30a4\u30ba\n std::extents&lt;size_t, 3, 3&gt; ext3x3;\n\n#if 1\n // \u52d5\u7684\u8981\u7d20\u6570\u304b\u3089\u306a\u308b2\u6b21\u5143\u914d\u5217\u30b5\u30a4\u30ba\u3092 4x2 \u3067\u521d\u671f\u5316\n std::dextents&lt;size_t, 2&gt; ext2d{4, 2};\n#else\n // C++26: dims&lt;2&gt;\u306fdextents&lt;size_t, 2&gt;\u3068\u7b49\u4fa1\n std::dims&lt;2&gt; ext2d{4, 2};\n#endif\n\n // 2\u500b\u306e\u52d5\u7684\u8981\u7d20\u6570(\u9ad8\u3055,\u5e45)\u3068\u9759\u7684\u8981\u7d20\u6570(RGBA=4)\u304b\u3089\u306a\u308b3\u6b21\u5143\u914d\u5217\u30b5\u30a4\u30ba\n using ColorImageExt = std::extents&lt;size_t, std::dynamic_extent, std::dynamic_extent, 4&gt;;\n ColorImageExt image_ext{128, 128};\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;mdspan&#34;, &#34;extents&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2024-01-08T13:35:12">
192-
2024年01月08日 13時35分12秒
191+
<span itemprop="datePublished" content="2024-07-18T10:05:39">
192+
2024年07月18日 10時05分39秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -219,6 +219,9 @@
219219

220220
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">IndexType</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">Rank</span><span class="o">&gt;</span>
221221
<span class="k">using</span> <span class="n">dextents</span> <span class="o">=</span> <span class="n"><i>see below</i></span><span class="p">;</span>
222+
223+
<span class="k">template</span><span class="o">&lt;</span><span class="kt">size_t</span> <span class="n">Rank</span><span class="p">,</span> <span class="k">class</span> <span class="nc">IndexType</span> <span class="o">=</span> <span class="kt">size_t</span><span class="o">&gt;</span>
224+
<span class="k">using</span> <span class="n">dims</span> <span class="o">=</span> <span class="n"><i>see below</i></span><span class="p">;</span> <span class="c1">// C++26以降</span>
222225
<span class="p">}</span>
223226
</code></pre></div>
224227
</p>
@@ -242,6 +245,8 @@ <h3>要素数の動的/静的指定</h3>
242245
<h3>エイリアステンプレート</h3>
243246
<p>エイリアステンプレート<code>dextents</code>は、次元数<code>Rank</code>かつ全次元が動的要素数で指定される<code>extents</code>を生成する。
244247
例えば<code>dextents&lt;size_t, 2&gt;</code><code>extents&lt;size_t, dynamic_extent, dynamic_extent&gt;</code>の略記となる。</p>
248+
<p>C++26では、テンプレートパラメータ<code>IndexType</code>がデフォルト引数<code>size_t</code>をもつエイリアステンプレート<code>dims</code>が追加される。
249+
例えば<code>dims&lt;2&gt;</code><code>dextents&lt;size_t, 2&gt;</code>と等価であり、<code>extents&lt;size_t, dynamic_extent, dynamic_extent&gt;</code>の略記となる。</p>
245250
<h2><a class="cpprefjp-defined-word" data-desc="満たさなければプログラムが不適格となる要件。`static_assert`や関数のdelete宣言などに相当する">適格要件</a></h2>
246251
<ul>
247252
<li><code>IndexType</code>は符号付き整数型または符号無し整数型</li>
@@ -356,15 +361,20 @@ <h2>推論補助</h2>
356361
</tbody>
357362
</table>
358363
<h2></h2>
359-
<p><div class="yata" id="24f9c878ad4fdca1a18cc8019f06a1fe50eaa5d4"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html">&lt;mdspan&gt;</a></span><span class="cp"></span>
364+
<p><div class="yata" id="72f1b6e9f8e52f61c117c8263d016ed1df87104e"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../mdspan.html">&lt;mdspan&gt;</a></span><span class="cp"></span>
360365

361366
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
362367
<span class="p">{</span>
363368
<span class="c1">// 固定要素数 3x3 の2次元配列サイズ</span>
364369
<span class="n"><span style="color:#ff0000">std::extents</span></span><span class="o">&lt;</span><span class="kt">size_t</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="o">&gt;</span> <span class="n">ext3x3</span><span class="p">;</span>
365370

371+
<span class="cp">#if 1</span>
366372
<span class="c1">// 動的要素数からなる2次元配列サイズを 4x2 で初期化</span>
367373
<span class="n"><span style="color:#ff0000">std::dextents</span></span><span class="o">&lt;</span><span class="kt">size_t</span><span class="p">,</span> <span class="mi">2</span><span class="o">&gt;</span> <span class="n">ext2d</span><span class="p">{</span><span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">};</span>
374+
<span class="cp">#else</span>
375+
<span class="c1">// C++26: dims&lt;2&gt;はdextents&lt;size_t, 2&gt;と等価</span>
376+
<span class="n"><span style="color:#ff0000">std::dims</span></span><span class="o">&lt;</span><span class="mi">2</span><span class="o">&gt;</span> <span class="n">ext2d</span><span class="p">{</span><span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">};</span>
377+
<span class="cp">#endif</span>
368378

369379
<span class="c1">// 2個の動的要素数(高さ,幅)と静的要素数(RGBA=4)からなる3次元配列サイズ</span>
370380
<span class="k">using</span> <span class="n">ColorImageExt</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::extents</span></span><span class="o">&lt;</span><span class="kt">size_t</span><span class="p">,</span> <span class="n"><a href="../span/dynamic_extent.html">std::dynamic_extent</a></span><span class="p">,</span> <span class="n"><a href="../span/dynamic_extent.html">std::dynamic_extent</a></span><span class="p">,</span> <span class="mi">4</span><span class="o">&gt;</span><span class="p">;</span>
@@ -394,6 +404,10 @@ <h2>参照</h2>
394404
<ul>
395405
<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html" target="_blank">P0009R18 MDSPAN</a></li>
396406
<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2599r2.pdf" target="_blank">P2599R2 <code>index_type</code> &amp; <code>size_type</code> in <code>mdspan</code></a></li>
407+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2389r2.html" target="_blank">P2389R2 <code>dextents</code> Index Type Parameter</a><ul>
408+
<li>C++26から、エイリアステンプレート<code>dims</code>が追加される。</li>
409+
</ul>
410+
</li>
397411
</ul></div>
398412

399413
</div>

0 commit comments

Comments
 (0)