tmp/tmpwt7nn2n0/{from.md → to.md}
RENAMED
|
@@ -53,12 +53,12 @@ Let `N` be `sizeof...(OtherIndexTypes)`, and let `exts_arr` be
|
|
| 53 |
|
| 54 |
- If `N != rank_dynamic()` is `true`, `exts_arr[`r`]` equals Eᵣ for each
|
| 55 |
r for which Eᵣ is a static extent, and
|
| 56 |
- either
|
| 57 |
- `sizeof...(exts) == 0` is `true`, or
|
| 58 |
-
- each element of `exts` is
|
| 59 |
-
|
| 60 |
|
| 61 |
*Ensures:* `*this == extents(exts_arr)` is `true`.
|
| 62 |
|
| 63 |
``` cpp
|
| 64 |
template<class OtherIndexType, size_t N>
|
|
@@ -80,16 +80,16 @@ template<class OtherIndexType, size_t N>
|
|
| 80 |
|
| 81 |
- If `N != rank_dynamic()` is `true`, `exts[`r`]` equals Eᵣ for each r
|
| 82 |
for which Eᵣ is a static extent, and
|
| 83 |
- either
|
| 84 |
- `N` is zero, or
|
| 85 |
-
- `exts[`r`]` is
|
| 86 |
`index_type` for every rank index r.
|
| 87 |
|
| 88 |
*Effects:*
|
| 89 |
|
| 90 |
-
- If `N` equals `
|
| 91 |
[0, `rank_dynamic()`), direct-non-list-initializes
|
| 92 |
*`dynamic-extents`*`[`d`]` with `as_const(exts[`d`])`.
|
| 93 |
- Otherwise, for all d in the range [0, `rank_dynamic()`),
|
| 94 |
direct-non-list-initializes *`dynamic-extents`*`[`d`]` with
|
| 95 |
`as_const(exts[`*`dynamic-index-inv`*`(`d`)])`.
|
|
@@ -99,7 +99,8 @@ template<class... Integrals>
|
|
| 99 |
explicit extents(Integrals...) -> see below;
|
| 100 |
```
|
| 101 |
|
| 102 |
*Constraints:* `(is_convertible_v<Integrals, size_t> && ...)` is `true`.
|
| 103 |
|
| 104 |
-
*Remarks:* The deduced type is
|
|
|
|
| 105 |
|
|
|
|
| 53 |
|
| 54 |
- If `N != rank_dynamic()` is `true`, `exts_arr[`r`]` equals Eᵣ for each
|
| 55 |
r for which Eᵣ is a static extent, and
|
| 56 |
- either
|
| 57 |
- `sizeof...(exts) == 0` is `true`, or
|
| 58 |
+
- each element of `exts` is representable as a nonnegative value of
|
| 59 |
+
type `index_type`.
|
| 60 |
|
| 61 |
*Ensures:* `*this == extents(exts_arr)` is `true`.
|
| 62 |
|
| 63 |
``` cpp
|
| 64 |
template<class OtherIndexType, size_t N>
|
|
|
|
| 80 |
|
| 81 |
- If `N != rank_dynamic()` is `true`, `exts[`r`]` equals Eᵣ for each r
|
| 82 |
for which Eᵣ is a static extent, and
|
| 83 |
- either
|
| 84 |
- `N` is zero, or
|
| 85 |
+
- `exts[`r`]` is representable as a nonnegative value of type
|
| 86 |
`index_type` for every rank index r.
|
| 87 |
|
| 88 |
*Effects:*
|
| 89 |
|
| 90 |
+
- If `N` equals `rank_dynamic()`, for all d in the range
|
| 91 |
[0, `rank_dynamic()`), direct-non-list-initializes
|
| 92 |
*`dynamic-extents`*`[`d`]` with `as_const(exts[`d`])`.
|
| 93 |
- Otherwise, for all d in the range [0, `rank_dynamic()`),
|
| 94 |
direct-non-list-initializes *`dynamic-extents`*`[`d`]` with
|
| 95 |
`as_const(exts[`*`dynamic-index-inv`*`(`d`)])`.
|
|
|
|
| 99 |
explicit extents(Integrals...) -> see below;
|
| 100 |
```
|
| 101 |
|
| 102 |
*Constraints:* `(is_convertible_v<Integrals, size_t> && ...)` is `true`.
|
| 103 |
|
| 104 |
+
*Remarks:* The deduced type is
|
| 105 |
+
`extents<size_t, maybe-static-ext<Integrals>...>`.
|
| 106 |
|