tmp/tmph9qk3zhs/{from.md → to.md}
RENAMED
|
@@ -23,11 +23,11 @@ value of type `index_type` [[basic.fundamental]].
|
|
| 23 |
|
| 24 |
*Effects:* Direct-non-list-initializes *extents\_* with
|
| 25 |
`other.extents()`.
|
| 26 |
|
| 27 |
``` cpp
|
| 28 |
-
template<class
|
| 29 |
constexpr explicit(!is_convertible_v<OtherExtents, extents_type>)
|
| 30 |
mapping(const layout_right::mapping<OtherExtents>& other) noexcept;
|
| 31 |
```
|
| 32 |
|
| 33 |
*Constraints:*
|
|
@@ -39,10 +39,44 @@ template<class OtherExents>
|
|
| 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);
|
| 48 |
```
|
|
|
|
| 23 |
|
| 24 |
*Effects:* Direct-non-list-initializes *extents\_* with
|
| 25 |
`other.extents()`.
|
| 26 |
|
| 27 |
``` cpp
|
| 28 |
+
template<class OtherExtents>
|
| 29 |
constexpr explicit(!is_convertible_v<OtherExtents, extents_type>)
|
| 30 |
mapping(const layout_right::mapping<OtherExtents>& other) noexcept;
|
| 31 |
```
|
| 32 |
|
| 33 |
*Constraints:*
|
|
|
|
| 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 LayoutLeftPaddedMapping>
|
| 46 |
+
constexpr explicit(!is_convertible_v<typename LayoutLeftPaddedMapping::extents_type,
|
| 47 |
+
extents_type>)
|
| 48 |
+
mapping(const LayoutLeftPaddedMapping&) noexcept;
|
| 49 |
+
```
|
| 50 |
+
|
| 51 |
+
*Constraints:*
|
| 52 |
+
|
| 53 |
+
- *`is-layout-left-padded-mapping-of`*`<LayoutLeftPaddedMapping>` is
|
| 54 |
+
`true`.
|
| 55 |
+
- `is_constructible_v<extents_type, typename LayoutLeftPaddedMapping::extents_type>`
|
| 56 |
+
is `true`.
|
| 57 |
+
|
| 58 |
+
*Mandates:* If
|
| 59 |
+
|
| 60 |
+
- `Extents::rank()` is greater than one,
|
| 61 |
+
- `Extents::static_extent(0)` does not equal `dynamic_extent`, and
|
| 62 |
+
- `LayoutLeftPaddedMapping::`*`static-padding-stride`* does not equal
|
| 63 |
+
`dynamic_extent`,
|
| 64 |
+
|
| 65 |
+
then `Extents::static_extent(0)` equals
|
| 66 |
+
`LayoutLeftPaddedMapping::`*`static-padding-stride`*.
|
| 67 |
+
|
| 68 |
+
*Preconditions:*
|
| 69 |
+
|
| 70 |
+
- If `extents_type::rank() > 1` is `true`, then `other.stride(1)` equals
|
| 71 |
+
`other.extents().extent(0)`.
|
| 72 |
+
- `other.required_span_size()` is representable as a value of type
|
| 73 |
+
`index_type`.
|
| 74 |
+
|
| 75 |
+
*Effects:* Direct-non-list-initializes `extents_` with
|
| 76 |
+
`other.extents()`.
|
| 77 |
+
|
| 78 |
``` cpp
|
| 79 |
template<class OtherExtents>
|
| 80 |
constexpr explicit(extents_type::rank() > 0)
|
| 81 |
mapping(const layout_stride::mapping<OtherExtents>& other);
|
| 82 |
```
|