tmp/tmpmwh1ubdo/{from.md → to.md}
RENAMED
|
@@ -26,11 +26,12 @@ template<class OtherIndexType>
|
|
| 26 |
- `is_nothrow_constructible_v<index_type, const OtherIndexType&>` is
|
| 27 |
`true`.
|
| 28 |
|
| 29 |
*Preconditions:*
|
| 30 |
|
| 31 |
-
- `s[`i`]
|
|
|
|
| 32 |
- *`REQUIRED-SPAN-SIZE`*`(e, s)` is representable as a value of type
|
| 33 |
`index_type` [[basic.fundamental]].
|
| 34 |
- If *rank\_* is greater than 0, then there exists a permutation P of
|
| 35 |
the integers in the range [0, rank_), such that
|
| 36 |
`s[`pᵢ`] >= s[`pᵢ₋₁`] * e.extent(p`ᵢ₋₁`)` is `true` for all i in the
|
|
@@ -58,11 +59,11 @@ template<class StridedLayoutMapping>
|
|
| 58 |
- `StridedLayoutMapping::is_always_strided()` is `true`.
|
| 59 |
|
| 60 |
*Preconditions:*
|
| 61 |
|
| 62 |
- `StridedLayoutMapping` meets the layout mapping
|
| 63 |
-
requirements [[mdspan.layout.
|
| 64 |
- `other.stride(`r`) > 0` is `true` for every rank index r of
|
| 65 |
`extents()`,
|
| 66 |
- `other.required_span_size()` is representable as a value of type
|
| 67 |
`index_type` [[basic.fundamental]], and
|
| 68 |
- *`OFFSET`*`(other) == 0` is `true`.
|
|
@@ -74,10 +75,12 @@ direct-non-list-initializes *`strides_`*`[`d`]` with
|
|
| 74 |
|
| 75 |
Remarks: The expression inside `explicit` is equivalent to:
|
| 76 |
|
| 77 |
``` cpp
|
| 78 |
!(is_convertible_v<typename StridedLayoutMapping::extents_type, extents_type> &&
|
| 79 |
-
(is-mapping-of<layout_left,
|
| 80 |
-
is-mapping-of<layout_right,
|
| 81 |
-
is-mapping-of<
|
|
|
|
|
|
|
| 82 |
```
|
| 83 |
|
|
|
|
| 26 |
- `is_nothrow_constructible_v<index_type, const OtherIndexType&>` is
|
| 27 |
`true`.
|
| 28 |
|
| 29 |
*Preconditions:*
|
| 30 |
|
| 31 |
+
- The result of converting `s[`i`]` to `index_type` is greater than `0`
|
| 32 |
+
for all i in the range [0, rank_).
|
| 33 |
- *`REQUIRED-SPAN-SIZE`*`(e, s)` is representable as a value of type
|
| 34 |
`index_type` [[basic.fundamental]].
|
| 35 |
- If *rank\_* is greater than 0, then there exists a permutation P of
|
| 36 |
the integers in the range [0, rank_), such that
|
| 37 |
`s[`pᵢ`] >= s[`pᵢ₋₁`] * e.extent(p`ᵢ₋₁`)` is `true` for all i in the
|
|
|
|
| 59 |
- `StridedLayoutMapping::is_always_strided()` is `true`.
|
| 60 |
|
| 61 |
*Preconditions:*
|
| 62 |
|
| 63 |
- `StridedLayoutMapping` meets the layout mapping
|
| 64 |
+
requirements [[mdspan.layout.reqmts]],
|
| 65 |
- `other.stride(`r`) > 0` is `true` for every rank index r of
|
| 66 |
`extents()`,
|
| 67 |
- `other.required_span_size()` is representable as a value of type
|
| 68 |
`index_type` [[basic.fundamental]], and
|
| 69 |
- *`OFFSET`*`(other) == 0` is `true`.
|
|
|
|
| 75 |
|
| 76 |
Remarks: The expression inside `explicit` is equivalent to:
|
| 77 |
|
| 78 |
``` cpp
|
| 79 |
!(is_convertible_v<typename StridedLayoutMapping::extents_type, extents_type> &&
|
| 80 |
+
(is-mapping-of<layout_left, StridedLayoutMapping> ||
|
| 81 |
+
is-mapping-of<layout_right, StridedLayoutMapping> ||
|
| 82 |
+
is-layout-left-padded-mapping-of<StridedLayoutMapping> ||
|
| 83 |
+
is-layout-right-padded-mapping-of<StridedLayoutMapping> ||
|
| 84 |
+
is-mapping-of<layout_stride, StridedLayoutMapping>))
|
| 85 |
```
|
| 86 |
|