From Jason Turner

[mdspan.layout.reqmts]

Diff to HTML by rtfpessoa

tmp/tmpz46hdjsn/{from.md → to.md} RENAMED
@@ -122,20 +122,24 @@ m.stride(r)
122
 
123
  *Result:* `typename M::index_type`
124
 
125
  *Returns:* sᵣ as defined in `m.is_strided()` above.
126
 
 
 
 
 
127
  ``` cpp
128
  M::is_always_unique()
129
  ```
130
 
131
  *Result:* A constant expression [[expr.const]] of type `bool`.
132
 
133
  *Returns:* `true` only if `m.is_unique()` is `true` for all possible
134
  objects `m` of type `M`.
135
 
136
- [*Note 5*: A mapping can return `false` even if the above condition is
137
  met. For certain layout mappings, it is possibly not feasible to
138
  determine whether every instance is unique. — *end note*]
139
 
140
  ``` cpp
141
  M::is_always_exhaustive()
@@ -144,11 +148,11 @@ M::is_always_exhaustive()
144
  *Result:* A constant expression [[expr.const]] of type `bool`.
145
 
146
  *Returns:* `true` only if `m.is_exhaustive()` is `true` for all possible
147
  objects `m` of type `M`.
148
 
149
- [*Note 6*: A mapping can return `false` even if the above condition is
150
  met. For certain layout mappings, it is possibly not feasible to
151
  determine whether every instance is exhaustive. — *end note*]
152
 
153
  ``` cpp
154
  M::is_always_strided()
@@ -157,9 +161,9 @@ M::is_always_strided()
157
  *Result:* A constant expression [[expr.const]] of type `bool`.
158
 
159
  *Returns:* `true` only if `m.is_strided()` is `true` for all possible
160
  objects `m` of type `M`.
161
 
162
- [*Note 7*: A mapping can return `false` even if the above condition is
163
  met. For certain layout mappings, it is possibly not feasible to
164
  determine whether every instance is strided. — *end note*]
165
 
 
122
 
123
  *Result:* `typename M::index_type`
124
 
125
  *Returns:* sᵣ as defined in `m.is_strided()` above.
126
 
127
+ [*Note 5*: It is not required for `m.stride(r)` to be well-formed if
128
+ `m.extents().rank()` is zero, even if `m.is_always_strided()` is
129
+ `true`. — *end note*]
130
+
131
  ``` cpp
132
  M::is_always_unique()
133
  ```
134
 
135
  *Result:* A constant expression [[expr.const]] of type `bool`.
136
 
137
  *Returns:* `true` only if `m.is_unique()` is `true` for all possible
138
  objects `m` of type `M`.
139
 
140
+ [*Note 6*: A mapping can return `false` even if the above condition is
141
  met. For certain layout mappings, it is possibly not feasible to
142
  determine whether every instance is unique. — *end note*]
143
 
144
  ``` cpp
145
  M::is_always_exhaustive()
 
148
  *Result:* A constant expression [[expr.const]] of type `bool`.
149
 
150
  *Returns:* `true` only if `m.is_exhaustive()` is `true` for all possible
151
  objects `m` of type `M`.
152
 
153
+ [*Note 7*: A mapping can return `false` even if the above condition is
154
  met. For certain layout mappings, it is possibly not feasible to
155
  determine whether every instance is exhaustive. — *end note*]
156
 
157
  ``` cpp
158
  M::is_always_strided()
 
161
  *Result:* A constant expression [[expr.const]] of type `bool`.
162
 
163
  *Returns:* `true` only if `m.is_strided()` is `true` for all possible
164
  objects `m` of type `M`.
165
 
166
+ [*Note 8*: A mapping can return `false` even if the above condition is
167
  met. For certain layout mappings, it is possibly not feasible to
168
  determine whether every instance is strided. — *end note*]
169