From Jason Turner

[mdspan.layout.right.cons]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpykib22oh/{from.md → to.md} +36 -0
tmp/tmpykib22oh/{from.md → to.md} RENAMED
@@ -39,10 +39,46 @@ template<class OtherExtents>
39
  value of type `index_type` [[basic.fundamental]].
40
 
41
  *Effects:* Direct-non-list-initializes *extents\_* with
42
  `other.extents()`.
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  ``` cpp
45
  template<class OtherExtents>
46
  constexpr explicit(extents_type::rank() > 0)
47
  mapping(const layout_stride::mapping<OtherExtents>& other) noexcept;
48
  ```
 
39
  value of type `index_type` [[basic.fundamental]].
40
 
41
  *Effects:* Direct-non-list-initializes *extents\_* with
42
  `other.extents()`.
43
 
44
+ ``` cpp
45
+ template<class LayoutRightPaddedMapping>
46
+ constexpr explicit(!is_convertible_v<typename LayoutRightPaddedMapping::extents_type,
47
+ extents_type>)
48
+ mapping(const LayoutRightPaddedMapping&) noexcept;
49
+ ```
50
+
51
+ *Constraints:*
52
+
53
+ - *`is-layout-right-padded-mapping-of`*`<LayoutRightPaddedMapping>` is
54
+ `true`.
55
+ - `is_constructible_v<extents_type, typename LayoutRightPaddedMapping::extents_- type>`
56
+ is `true`.
57
+
58
+ *Mandates:* If
59
+
60
+ - `Extents::rank()` is greater than one,
61
+ - `Extents::static_extent(Extents::rank() - 1)` does not equal
62
+ `dynamic_extent`, and
63
+ - `LayoutRightPaddedMapping::`*`static-padding-stride`* does not equal
64
+ `dynamic_extent`,
65
+
66
+ then `Extents::static_extent(Extents::rank() - 1)` equals
67
+ `LayoutRightPaddedMapping::`*`static-padding-stride`*.
68
+
69
+ *Preconditions:*
70
+
71
+ - If `extents_type::rank() > 1` is `true`, then
72
+ `other.stride(extents_type::rank() - 2)` equals
73
+ `other.extents().extent(extents_type::rank() - 1)`.
74
+ - `other.required_span_size()` is representable as a value of type
75
+ `index_type`.
76
+
77
+ *Effects:* Direct-non-list-initializes `extents_` with
78
+ `other.extents()`.
79
+
80
  ``` cpp
81
  template<class OtherExtents>
82
  constexpr explicit(extents_type::rank() > 0)
83
  mapping(const layout_stride::mapping<OtherExtents>& other) noexcept;
84
  ```