212
212
213
213
< p class ="text-right "> < small >
214
214
最終更新日時(UTC):
215
- < span itemprop ="datePublished " content ="2024-01-21T01:52:48 ">
216
- 2024年01月21日 01時52分48秒
215
+ < span itemprop ="datePublished " content ="2024-07-29T06:21:10 ">
216
+ 2024年07月29日 06時21分10秒
217
217
</ span >
218
218
< br />
219
219
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
251
251
< span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="p "> (</ span > < span class ="o "> !</ span > < span class ="n "> < a href ="../../../type_traits/is_convertible.html "> is_convertible_v</ a > </ span > < span class ="o "> <</ span > < span class ="n "> OtherExtents</ span > < span class ="p "> ,</ span > < span class ="n "> extents_type</ span > < span class ="o "> ></ span > < span class ="p "> )</ span >
252
252
< span class ="n "> mapping</ span > < span class ="p "> (</ span > < span class ="k "> const</ span > < span class ="n "> < a href ="../../layout_left/mapping.html "> layout_left::mapping</ a > </ span > < span class ="o "> <</ span > < span class ="n "> OtherExtents</ span > < span class ="o "> >&</ span > < span class ="n "> other</ span > < span class ="p "> )</ span > < span class ="k "> noexcept</ span > < span class ="p "> ;</ span > < span class ="c1 "> // (5)</ span >
253
253
254
+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> < a href ="../../layout_right_padded/mapping.html "> LayoutRightPaddedMapping</ a > </ span > < span class ="o "> ></ span >
255
+ < span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="p "> (</ span > < span class ="o "> !</ span > < span class ="n "> < a href ="../../../type_traits/is_convertible.html "> is_convertible_v</ a > </ span > < span class ="o "> <</ span > < span class ="k "> typename</ span > < span class ="n "> < a href ="../../layout_right_padded/mapping.html "> LayoutRightPaddedMapping</ a > </ span > < span class ="o "> ::</ span > < span class ="n "> extents_type</ span > < span class ="p "> ,</ span > < span class ="n "> extents_type</ span > < span class ="o "> ></ span > < span class ="p "> )</ span >
256
+ < span class ="n "> mapping</ span > < span class ="p "> (</ span > < span class ="k "> const</ span > < span class ="n "> < a href ="../../layout_right_padded/mapping.html "> LayoutRightPaddedMapping</ a > </ span > < span class ="o "> &</ span > < span class ="p "> )</ span > < span class ="k "> noexcept</ span > < span class ="p "> ;</ span > < span class ="c1 "> // (7) C++26</ span >
257
+
254
258
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> OtherExtents</ span > < span class ="o "> ></ span >
255
259
< span class ="k "> constexpr</ span > < span class ="k "> explicit</ span > < span class ="p "> (</ span > < span class ="n "> extents_type</ span > < span class ="o "> ::</ span > < span class ="n "> < a href ="../../extents/rank.html "> rank()</ a > </ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="p "> )</ span >
256
260
< span class ="n "> mapping</ span > < span class ="p "> (</ span > < span class ="k "> const</ span > < span class ="n "> < a href ="../../layout_stride/mapping.html "> layout_stride::mapping</ a > </ span > < span class ="o "> <</ span > < span class ="n "> OtherExtents</ span > < span class ="o "> >&</ span > < span class ="n "> other</ span > < span class ="p "> )</ span > < span class ="k "> noexcept</ span > < span class ="p "> ;</ span > < span class ="c1 "> // (6)</ span >
@@ -264,6 +268,7 @@ <h2>概要</h2>
264
268
< li > (4) : 他< code > layout_right::mapping</ code > からの変換コンストラクタ</ li >
265
269
< li > (5) : < code > < a href ="../../layout_left/mapping.html "> layout_left::mapping</ a > </ code > からの変換コンストラクタ</ li >
266
270
< li > (6) : < code > < a href ="../../layout_stride/mapping.html "> layout_stride::mapping</ a > </ code > からの変換コンストラクタ</ li >
271
+ < li > (7) : < code > < a href ="../../layout_right_padded/mapping.html "> layout_right_padded<S>::mapping</ a > </ code > からの変換コンストラクタ</ li >
267
272
</ ul >
268
273
< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件 "> テンプレートパラメータ制約</ a > </ h2 >
269
274
< ul >
@@ -274,6 +279,20 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数であればオーバー
274
279
</ ul >
275
280
</ li >
276
281
< li > (6) : < code > < a href ="../../../type_traits/is_constructible.html "> is_constructible_v</ a > <extents_type, OtherExtents></ code > が< code > true</ code > であること。</ li >
282
+ < li > (7) :< ul >
283
+ < li > < code > < a href ="../../is-layout-right-padded-mapping-of.html "> is-layout-right-padded-mapping-of</ a > <LayoutRightPaddedMapping></ code > が< code > true</ code > 、かつ</ li >
284
+ < li > < code > < a href ="../../../type_traits/is_constructible.html "> is_constructible_v</ a > <extents_type, typename LayoutRightPaddedMapping::extents_type></ code > が< code > true</ code > であること。</ li >
285
+ </ ul >
286
+ </ li >
287
+ </ ul >
288
+ < h2 > < a class ="cpprefjp-defined-word " data-desc ="満たさなければプログラムが不適格となる要件。`static_assert`や関数のdelete宣言などに相当する "> 適格要件</ a > </ h2 >
289
+ < ul >
290
+ < li > (7) : 以下を満たすとき、< code > extents_type::< a href ="../../extents/static_extent.html "> static_extent</ a > (< a href ="../../extents/rank.html "> Extents::rank()</ a > - 1)</ code > が< code > < a href ="../../layout_right_padded/mapping.html "> LayoutRightPaddedMapping::static-padding-stride</ a > </ code > に等しいこと。< ul >
291
+ < li > < code > extents_type::< a href ="../../extents/rank.html "> rank()</ a > > 1</ code > 、かつ</ li >
292
+ < li > < code > extents_type::< a href ="../../extents/static_extent.html "> static_extent</ a > (Extents::rank() - 1)</ code > が< code > < a href ="../../../span/dynamic_extent.html "> dynamic_extent</ a > </ code > と等しくなく、かつ</ li >
293
+ < li > < code > LayoutRightPaddedMapping::static-padding-stride</ code > が< code > < a href ="../../../span/dynamic_extent.html "> dynamic_extent</ a > </ code > と等しくないとき。</ li >
294
+ </ ul >
295
+ </ li >
277
296
</ ul >
278
297
< h2 > 事前条件</ h2 >
279
298
< ul >
@@ -285,18 +304,24 @@ <h2>事前条件</h2>
285
304
< li > < code > other.< a href ="../../layout_stride/mapping/required_span_size.html "> required_span_size()</ a > </ code > を、< code > index_type</ code > 型で表現できること。</ li >
286
305
</ ul >
287
306
</ li >
307
+ < li > (7) :< ul >
308
+ < li > < code > extents_type::< a href ="../../extents/rank.html "> rank()</ a > > 1</ code > のとき、< code > other.stride(extents_type::rank() - 2) == other.extents().extent(extents_type::rank() - 1)</ code > </ li >
309
+ < li > < code > other.< span href ="https://cpprefjp.github.io/reference/mdspan/layout_right_padded/mapping/required_span_size.md.nolink "> required_span_size()</ span > </ code > を、< code > index_type</ code > 型で表現できること。</ li >
310
+ </ ul >
311
+ </ li >
288
312
</ ul >
289
313
< h2 > 効果</ h2 >
290
314
< ul >
291
315
< li > (3) : < code > e</ code > を用いて< code > extents_</ code > を< a class ="cpprefjp-defined-word " data-desc ="direct-non-list-initialization。リスト初期化ではない直接初期化 "> 直接非リスト初期化</ a > する。</ li >
292
- < li > (4), (5), (6) : < code > other.extents()</ code > を用いて< code > extents_</ code > を< a class ="cpprefjp-defined-word " data-desc ="direct-non-list-initialization。リスト初期化ではない直接初期化 "> 直接非リスト初期化</ a > する。</ li >
316
+ < li > (4), (5), (6), (7) : < code > other.extents()</ code > を用いて< code > extents_</ code > を< a class ="cpprefjp-defined-word " data-desc ="direct-non-list-initialization。リスト初期化ではない直接初期化 "> 直接非リスト初期化</ a > する。</ li >
293
317
</ ul >
294
318
< h2 > 例外</ h2 >
295
319
< p > 投げない</ p >
296
320
< h2 > explicitになる条件</ h2 >
297
321
< ul >
298
322
< li > (4), (5) : < code > !< a href ="../../../type_traits/is_convertible.html "> is_convertible_v</ a > <OtherExtents, extents_type></ code > </ li >
299
323
< li > (6) : < code > < a href ="../../extents/rank.html "> extents_type::rank()</ a > > 0</ code > </ li >
324
+ < li > (7) : < code > !< a href ="../../../type_traits/is_convertible.html "> is_convertible_v</ a > <typename LayoutRightPaddedMapping::extents_type, extents_type></ code > </ li >
300
325
</ ul >
301
326
< h2 > 例</ h2 >
302
327
< p > < div class ="yata " id ="84b0003b127e50867e53eaff9923683489828f63 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../../cassert.html "> <cassert></ a > </ span > < span class ="cp "> </ span >
@@ -366,10 +391,12 @@ <h2>関連項目</h2>
366
391
< ul >
367
392
< li > < code > < a href ="../../layout_left/mapping.html "> layout_left::mapping</ a > </ code > </ li >
368
393
< li > < code > < a href ="../../layout_stride/mapping.html "> layout_stride::mapping</ a > </ code > </ li >
394
+ < li > < code > < a href ="../../layout_right_padded/mapping.html "> layout_right_padded::mapping</ a > </ code > </ li >
369
395
</ ul >
370
396
< h2 > 参照</ h2 >
371
397
< ul >
372
398
< li > < a href ="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html " target ="_blank "> P0009R18 MDSPAN</ a > </ li >
399
+ < li > < a href ="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2642r6.pdf " target ="_blank "> P2642R6 Padded mdspan layouts</ a > </ li >
373
400
</ ul > </ div >
374
401
375
402
</ div >
0 commit comments