|
212 | 212 |
|
213 | 213 | <p class="text-right"><small>
|
214 | 214 | 最終更新日時(UTC):
|
215 |
| - <span itemprop="datePublished" content="2024-07-29T13:39:29"> |
216 |
| - 2024年07月29日 13時39分29秒 |
| 215 | + <span itemprop="datePublished" content="2024-12-09T15:06:18"> |
| 216 | + 2024年12月09日 15時06分18秒 |
217 | 217 | </span>
|
218 | 218 | <br/>
|
219 | 219 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -285,20 +285,26 @@ <h2>戻り値</h2>
|
285 | 285 | <li>パラメータパック<code>P</code> : <code><a href="../../../type_traits/is_same.html">is_same_v</a><<a href="../../../utility/make_index_sequence.html">make_index_sequence</a><rank()>, <a href="../../../utility/index_sequence.html">index_sequence</a><P...>> == true</code></li>
|
286 | 286 | <li>値<code>offset</code> : <code>size_t</code>型の値<code><a href="op_call.html">(*this)</a>(<a href="../../first_.html">first_</a><index_type, P>(slices...)...)</code></li>
|
287 | 287 | </ul>
|
| 288 | +<p>下記を満たす型<code>S</code>を、単位ストライド幅スライス(unit-stride slice)と定義する。</p> |
| 289 | +<ul> |
| 290 | +<li>型<code>S</code>が<code><a href="../../strided_slice.html">strided_slice</a></code>の特殊化であり型<code>S::stride_type</code>が<code><a href="../../../span/integral-constant-like.html">integral-constant-like</a></code>のモデルかつ<code>S::stride_type::value</code>が<code>1</code>に等しい、もしくは</li> |
| 291 | +<li>型<code>S</code>が<code><a href="../../index-pair-like.html">index-pair-like</a><index_type></code>のモデル、もしくは</li> |
| 292 | +<li><code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S, <a href="../../full_extent_t.html">full_extent_t</a>></code>が<code>true</code></li> |
| 293 | +</ul> |
288 | 294 | <p>説明専用の<code>submdspan-mapping-impl</code>関数テンプレートは下記の値を返す。</p>
|
289 | 295 | <ul>
|
290 | 296 | <li><code><a href="../../extents/rank.html">Extents::rank()</a> == 0</code>のとき、<code><a href="../../submdspan_mapping_result.html">submdspan_mapping_result</a>{*this, 0}</code></li>
|
291 | 297 | <li><code>SubExtents::rank() == 0</code>のとき、<code><a href="../../submdspan_mapping_result.html">submdspan_mapping_result</a>{<a href="../../layout_left.html">layout_left::mapping</a>(sub_ext), offset}</code></li>
|
292 | 298 | <li>以下を満たすとき、<code><a href="../../submdspan_mapping_result.html">submdspan_mapping_result</a>{<a href="../../layout_left.html">layout_left::mapping</a>(sub_ext), offset}</code><ul>
|
293 | 299 | <li>半開区間<code>[0, SubExtents::rank()-1)</code>の値<code>k</code>に対して、<code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S_k, <a href="../../full_extent_t.html">full_extent_t</a>></code>が<code>true</code>、かつ</li>
|
294 |
| -<li><code>SubExtents::rank()-1</code>に等しい値<code>k</code>に対して、型<code>S_k</code>が<code><a href="../../index-pair-like.html">index-pair-like</a><index_type></code>のモデルもしくは<code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S_k, <a href="../../full_extent_t.html">full_extent_t</a>></code>が<code>true</code></li> |
| 300 | +<li><code>SubExtents::rank()-1</code>に等しい値<code>k</code>に対して、型<code>S_k</code>が単位ストライド幅スライスである</li> |
295 | 301 | </ul>
|
296 | 302 | </li>
|
297 | 303 | <li>以下を満たすとき、<code><a href="../../submdspan_mapping_result.html">submdspan_mapping_result</a>{<a href="../../layout_left_padded/mapping.html">layout_left_padded<S_static>::mapping</a>(sub_ext, stride(u + 1)), offset}</code><ul>
|
298 |
| -<li>型<code>S_p</code>が<code><a href="../../index-pair-like.html">index-pair-like</a><index_type></code>のモデルもしくは<code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S_k, <a href="../../full_extent_t.html">full_extent_t</a>></code>が<code>true</code>を満たす<code>0</code>より大きい最小値<code>p</code>に対して、<code>u+1</code>が<code>p</code>となる値<code>u</code>を用いて<ul> |
299 |
| -<li>型<code>S_0</code>が<code><a href="../../index-pair-like.html">index-pair-like</a><index_type></code>のモデルもしくは<code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S_0, <a href="../../full_extent_t.html">full_extent_t</a>></code>が<code>true</code>、かつ</li> |
| 304 | +<li>型<code>S_p</code>が単位ストライド幅スライスを満たす<code>0</code>より大きい最小値<code>p</code>に対して、<code>u+1</code>が<code>p</code>となる値<code>u</code>を用いて<ul> |
| 305 | +<li>型<code>S_0</code>が単位ストライド幅スライスであり、かつ</li> |
300 | 306 | <li>半開区間<code>[u+1, u+SubExtents::rank()-1)</code>の値<code>k</code>に対して、<code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S_k, <a href="../../full_extent_t.html">full_extent_t</a>></code>、かつ</li>
|
301 |
| -<li><code>u+SubExtents::rank()-1</code>に等しい値<code>k</code>に対して、型<code>S_k</code>が<code><a href="../../index-pair-like.html">index-pair-like</a><index_type></code>のモデルもしくは<code><a href="../../../type_traits/is_convertible.html">is_convertible_v</a><S_k, <a href="../../full_extent_t.html">full_extent_t</a>></code>が<code>true</code></li> |
| 307 | +<li><code>u+SubExtents::rank()-1</code>に等しい値<code>k</code>に対して、型<code>S_k</code>が単位ストライド幅スライスである</li> |
302 | 308 | </ul>
|
303 | 309 | </li>
|
304 | 310 | <li>ここで定数<code>S_static</code>は<ul>
|
@@ -330,6 +336,7 @@ <h2>参照</h2>
|
330 | 336 | <ul>
|
331 | 337 | <li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2630r4.html" target="_blank">P2630R4 Submdspan</a></li>
|
332 | 338 | <li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2642r6.pdf" target="_blank">P2642R6 Padded mdspan layouts</a></li>
|
| 339 | +<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3355r1.html" target="_blank">P3355R1 Fix submdspan for C++26</a></li> |
333 | 340 | </ul></div>
|
334 | 341 |
|
335 | 342 | </div>
|
|
0 commit comments