From Jason Turner

[mdspan.layout.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpvvwzohsv/{from.md → to.md} +29 -5
tmp/tmpvvwzohsv/{from.md → to.md} RENAMED
@@ -1,9 +1,8 @@
1
  ##### General <a id="mdspan.layout.general">[[mdspan.layout.general]]</a>
2
 
3
- In subclauses [[mdspan.layout.reqmts]] and
4
- [[mdspan.layout.policy.reqmts]]:
5
 
6
  - `M` denotes a layout mapping class.
7
  - `m` denotes a (possibly const) value of type `M`.
8
  - `i` and `j` are packs of (possibly const) integers that are
9
  multidimensional indices in `m.extents()` [[mdspan.overview]].
@@ -12,15 +11,40 @@ In subclauses [[mdspan.layout.reqmts]] and
12
  - `r` is a (possibly const) rank index of `typename M::extents_type`.
13
  - `dᵣ` is a pack of (possibly const) integers for which
14
  `sizeof...(dᵣ) == M::extents_type::rank()` is `true`, the rᵗʰ element
15
  is equal to 1, and all other elements are equal to 0.
16
 
17
- In subclauses [[mdspan.layout.reqmts]] through [[mdspan.layout.stride]],
18
- let *`is-mapping-of`* be the exposition-only variable template defined
 
19
  as follows:
20
-
21
  ``` cpp
22
  template<class Layout, class Mapping>
23
  constexpr bool is-mapping-of = // exposition only
24
  is_same_v<typename Layout::template mapping<typename Mapping::extents_type>, Mapping>;
25
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
 
1
  ##### General <a id="mdspan.layout.general">[[mdspan.layout.general]]</a>
2
 
3
+ In [[mdspan.layout.reqmts]] and [[mdspan.layout.policy.reqmts]]:
 
4
 
5
  - `M` denotes a layout mapping class.
6
  - `m` denotes a (possibly const) value of type `M`.
7
  - `i` and `j` are packs of (possibly const) integers that are
8
  multidimensional indices in `m.extents()` [[mdspan.overview]].
 
11
  - `r` is a (possibly const) rank index of `typename M::extents_type`.
12
  - `dᵣ` is a pack of (possibly const) integers for which
13
  `sizeof...(dᵣ) == M::extents_type::rank()` is `true`, the rᵗʰ element
14
  is equal to 1, and all other elements are equal to 0.
15
 
16
+ In [[mdspan.layout.reqmts]] through [[mdspan.layout.stride]]:
17
+
18
+ - Let *`is-mapping-of`* be the exposition-only variable template defined
19
  as follows:
 
20
  ``` cpp
21
  template<class Layout, class Mapping>
22
  constexpr bool is-mapping-of = // exposition only
23
  is_same_v<typename Layout::template mapping<typename Mapping::extents_type>, Mapping>;
24
  ```
25
+ - Let *`is-layout-left-padded-mapping-of`* be the exposition-only
26
+ variable template defined as follows:
27
+ ``` cpp
28
+ template<class Mapping>
29
+ constexpr bool is-layout-left-padded-mapping-of = see below; // exposition only
30
+ ```
31
+
32
+ where `is-layout-left-padded-mapping-of<Mapping>` is `true` if and
33
+ only if `Mapping` denotes a specialization of
34
+ `layout_left_padded<S>::mapping` for some value `S` of type `size_t`.
35
+ - Let *`is-layout-right-padded-mapping-of`* be the exposition-only
36
+ variable template defined as follows:
37
+ ``` cpp
38
+ template<class Mapping>
39
+ constexpr bool is-layout-right-padded-mapping-of = see below; // exposition only
40
+ ```
41
+
42
+ where `is-layout-right-padded-mapping-of<Mapping>` is `true` if and
43
+ only if `Mapping` denotes a specialization of
44
+ `layout_right_padded<S>::mapping` for some value `S` of type `size_t`.
45
+ - For nonnegative integers x and y, let LEAST-MULTIPLE-AT-LEAST(x, y)
46
+ denote
47
+ - y if x is zero,
48
+ - otherwise, the least multiple of x that is greater than or equal to
49
+ y.
50