|
16 | 16 |
|
17 | 17 | <meta charset="UTF-8"> |
18 | 18 |
|
19 | | - <title>src-indices - cpprefjp C++日本語リファレンス</title> |
| 19 | + <title>canonical-index - cpprefjp C++日本語リファレンス</title> |
20 | 20 |
|
21 | 21 | <meta name="viewport" content="width=device-width,initial-scale=1"> |
22 | 22 | <meta name="keywords" content=" |
23 | 23 | C++,標準ライブラリ,リファレンス,ドキュメント,STL,std,,mdspan,function template,cpp26 |
24 | 24 | "> |
25 | | - <meta name="title" content="src-indices - cpprefjp C++日本語リファレンス" /> |
26 | | - <meta itemprop="name" content="src-indices - cpprefjp C++日本語リファレンス" /> |
27 | | - <meta property="og:title" content="src-indices - cpprefjp C++日本語リファレンス" /> |
28 | | - <meta property="og:url" content="https://cpprefjp.github.io/reference/mdspan/src-indices.html" /> |
| 25 | + <meta name="title" content="canonical-index - cpprefjp C++日本語リファレンス" /> |
| 26 | + <meta itemprop="name" content="canonical-index - cpprefjp C++日本語リファレンス" /> |
| 27 | + <meta property="og:title" content="canonical-index - cpprefjp C++日本語リファレンス" /> |
| 28 | + <meta property="og:url" content="https://cpprefjp.github.io/reference/mdspan/canonical-index.html" /> |
29 | 29 | <meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" /> |
30 | 30 | <meta property="og:type" content="article" /> |
31 | | - <meta property="og:description" content="`src-indices`は[`submdspan`](submdspan.md)動作説明用の関数テンプレートである。" /> |
| 31 | + <meta property="og:description" content="`canonical-index`は、[`submdspan`](submdspan.md)動作仕様定義で用いられる説明専用の関数テンプレートである。" /> |
32 | 32 | <meta name="twitter:card" content="summary" /> |
33 | | - <meta name="twitter:title" content="src-indices - cpprefjp C++日本語リファレンス" /> |
34 | | - <meta name="twitter:url" content="https://cpprefjp.github.io/reference/mdspan/src-indices.html" /> |
35 | | - <meta name="twitter:description" content="`src-indices`は[`submdspan`](submdspan.md)動作説明用の関数テンプレートである。" /> |
| 33 | + <meta name="twitter:title" content="canonical-index - cpprefjp C++日本語リファレンス" /> |
| 34 | + <meta name="twitter:url" content="https://cpprefjp.github.io/reference/mdspan/canonical-index.html" /> |
| 35 | + <meta name="twitter:description" content="`canonical-index`は、[`submdspan`](submdspan.md)動作仕様定義で用いられる説明専用の関数テンプレートである。" /> |
36 | 36 |
|
37 | 37 |
|
38 | 38 | <link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" /> |
|
68 | 68 |
|
69 | 69 | </head> |
70 | 70 | <body> |
71 | | -<header data-kunai-mdinfo="{"meta": {"exposition-only": [""], "header": ["mdspan"], "id-type": ["function template"], "cpp": ["cpp26"]}, "sources": [], "page_id": ["reference", "mdspan", "src-indices"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"exposition-only": [""], "header": ["mdspan"], "id-type": ["function template"], "cpp": ["cpp26"]}, "sources": [], "page_id": ["reference", "mdspan", "canonical-index"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation"> |
73 | 73 | <div class="container-fluid"> |
74 | 74 | <div class="navbar-header"> |
|
171 | 171 | <span> |
172 | 172 |
|
173 | 173 |
|
174 | | - <span itemprop="name">src-indices</span> |
| 174 | + <span itemprop="name">canonical-index</span> |
175 | 175 |
|
176 | 176 |
|
177 | 177 | </span> |
|
188 | 188 |
|
189 | 189 | <p class="text-right"><small> |
190 | 190 | 最終更新日時(UTC): |
191 | | - <span itemprop="datePublished" content="2026-02-08T09:00:28"> |
192 | | - 2026年02月08日 09時00分28秒 |
| 191 | + <span itemprop="datePublished" content="2026-03-31T11:30:41"> |
| 192 | + 2026年03月31日 11時30分41秒 |
193 | 193 | </span> |
194 | 194 | <br/> |
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
|
200 | 200 |
|
201 | 201 |
|
202 | 202 | <p class="text-right"> |
203 | | - <a class="history" target="_blank" href="https://github.com/cpprefjp/site/commits/master/reference/mdspan/src-indices.md"> |
| 203 | + <a class="history" target="_blank" href="https://github.com/cpprefjp/site/commits/master/reference/mdspan/canonical-index.md"> |
204 | 204 | <span class="fa fa-fw fa-clock-o fa-flip-horizontal"></span>履歴 |
205 | 205 | </a> |
206 | | - <a class="edit" target="_blank" href="https://github.com/cpprefjp/site/edit/master/reference/mdspan/src-indices.md"> |
| 206 | + <a class="edit" target="_blank" href="https://github.com/cpprefjp/site/edit/master/reference/mdspan/canonical-index.md"> |
207 | 207 | <span class="fa fa-fw fa-pencil"></span>編集 |
208 | 208 | </a> |
209 | 209 | </p> |
|
212 | 212 | <div class="row"> |
213 | 213 | <div class="col-sm-12 content-body"> |
214 | 214 |
|
215 | | - <div class="identifier-type">function template</div><div class="header"><mdspan></div><h1 class="exposition-only" itemprop="name"><span class="token">src-indices</span><span class="cpp cpp26" title="C++26で追加">(C++26)</span><span class="cpp exposition-only" title="説明専用"></span></h1> |
216 | | -<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">template</span><span class="o"><</span><span class="k">class</span><span class="w"> </span><span class="nc">IndexType</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">N</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="n">SliceSpecifiers</span><span class="o">></span> |
217 | | -<span class="k">constexpr</span><span class="w"> </span><span class="n"><a href="../array/array.html">array</a></span><span class="o"><</span><span class="n">IndexType</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">...(</span><span class="n">SliceSpecifiers</span><span class="p">)</span><span class="o">></span> |
218 | | -<span class="w"> </span><span class="n">src</span><span class="o">-</span><span class="n">indices</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n"><a href="../array/array.html">array</a></span><span class="o"><</span><span class="n">IndexType</span><span class="p">,</span><span class="w"> </span><span class="n">N</span><span class="o">>&</span><span class="w"> </span><span class="n">indices</span><span class="p">,</span><span class="w"> </span><span class="n">SliceSpecifiers</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="n">slices</span><span class="p">);</span> |
| 215 | + <div class="identifier-type">function template</div><div class="header"><mdspan></div><h1 class="exposition-only" itemprop="name"><span class="token">canonical-index</span><span class="cpp cpp26" title="C++26で追加">(C++26)</span><span class="cpp exposition-only" title="説明専用"></span></h1> |
| 216 | +<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">template</span><span class="o"><</span><span class="k">class</span><span class="w"> </span><span class="nc">IndexType</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">S</span><span class="o">></span> |
| 217 | +<span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">canonical</span><span class="o">-</span><span class="n">index</span><span class="p">(</span><span class="n">S</span><span class="w"> </span><span class="n">s</span><span class="p">);</span> |
219 | 218 | </code></pre></div> |
220 | 219 | </p> |
221 | 220 | <h2>概要</h2> |
222 | | -<p><code>src-indices</code>は<code><a href="submdspan.html">submdspan</a></code>動作説明用の関数テンプレートである。</p> |
| 221 | +<p><code>canonical-index</code>は、<code><a href="submdspan.html">submdspan</a></code>動作仕様定義で用いられる説明専用の関数テンプレートである。</p> |
223 | 222 | <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Mandates。満たさなければプログラムが不適格となる要件。この要件は、オーバーロード解決によって選択された関数内での`static_assert`の定数条件式や、関数に対するdelete宣言などで表現できる">適格要件</a></h2> |
224 | | -<p><code>IndexType</code>は符号付き整数型または符号無し整数型であること。</p> |
225 | | -<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2> |
226 | | -<p>半開区間<code>[0, sizeof...(SliceSpecifiers))</code>の<code>k</code>に対して、<code>k</code>番目の要素が下記の値を持つ配列を返す。</p> |
| 223 | +<p><code>S</code>が<code><a href="../span/integral-constant-like.html">integral-constant-like</a></code>のモデルであるとき、<code>extents<IndexType>::<a href="extents/index-cast.html">index-cast</a>(<a href="../utility/move.html">std::move</a>(s))</code>を<code>IndexType</code>型の値として表現できること。</p> |
| 224 | +<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a></h2> |
| 225 | +<p><code>extents<IndexType>::<a href="extents/index-cast.html">index-cast</a>(<a href="../utility/move.html">std::move</a>(s))</code>を<code>IndexType</code>型の値として表現できること。</p> |
| 226 | +<h2>効果</h2> |
| 227 | +<p>以下と等価</p> |
227 | 228 | <ul> |
228 | | -<li><code><a href="submdspan_extents.html">map-rank[k]</a></code>が<code><a href="../span/dynamic_extent.html">dynamic_extent</a></code>に等しいとき、<code><a href="first_.html">first_</a><IndexType, k>(slices...)</code></li> |
229 | | -<li>そうでなければ、<code><a href="first_.html">first_</a><IndexType, k>(slices...) + indices[<a href="submdspan_extents.html">map-rank[k]</a>]</code></li> |
| 229 | +<li><code>S</code>が<code><a href="../span/integral-constant-like.html">integral-constant-like</a></code>のモデルであるとき、<code>return <span href="https://cpprefjp.github.io/reference/type_traits/constant_wrapper.md.nolink">cw</span><IndexType(S::value)></code></li> |
| 230 | +<li>そうではないとき、<code>return IndexType(<a href="../utility/move.html">std::move</a>(s))</code></li> |
230 | 231 | </ul> |
231 | 232 | <h2>バージョン</h2> |
232 | 233 | <h3>言語</h3> |
233 | 234 | <ul> |
234 | 235 | <li>C++26</li> |
235 | 236 | </ul> |
| 237 | +<h2>関連項目</h2> |
| 238 | +<ul> |
| 239 | +<li><code><a href="submdspan_canonicalize_slices.html">submdspan_canonicalize_slices</a></code></li> |
| 240 | +</ul> |
236 | 241 | <h2>参照</h2> |
237 | 242 | <ul> |
238 | | -<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2630r4.html" target="_blank">P2630R4 Submdspan</a></li> |
| 243 | +<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3663r3.html" target="_blank">P3663R3 Future-proof <code>submdspan_mapping</code></a></li> |
239 | 244 | </ul></div> |
240 | 245 |
|
241 | 246 | </div> |
|
0 commit comments