From Jason Turner

[mdspan.layout.right.cons]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpxeny0knb/{from.md → to.md} +63 -0
tmp/tmpxeny0knb/{from.md → to.md} RENAMED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ###### Constructors <a id="mdspan.layout.right.cons">[[mdspan.layout.right.cons]]</a>
2
+
3
+ ``` cpp
4
+ constexpr mapping(const extents_type& e) noexcept;
5
+ ```
6
+
7
+ *Preconditions:* The size of the multidimensional index space `e` is
8
+ representable as a value of type `index_type` [[basic.fundamental]].
9
+
10
+ *Effects:* Direct-non-list-initializes *extents\_* with `e`.
11
+
12
+ ``` cpp
13
+ template<class OtherExtents>
14
+ constexpr explicit(!is_convertible_v<OtherExtents, extents_type>)
15
+ mapping(const mapping<OtherExtents>& other) noexcept;
16
+ ```
17
+
18
+ *Constraints:* `is_constructible_v<extents_type, OtherExtents>` is
19
+ `true`.
20
+
21
+ *Preconditions:* `other.required_span_size()` is representable as a
22
+ 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 OtherExtents>
29
+ constexpr explicit(!is_convertible_v<OtherExtents, extents_type>)
30
+ mapping(const layout_left::mapping<OtherExtents>& other) noexcept;
31
+ ```
32
+
33
+ *Constraints:*
34
+
35
+ - `extents_type::rank() <= 1` is `true`, and
36
+ - `is_constructible_v<extents_type, OtherExtents>` is `true`.
37
+
38
+ *Preconditions:* `other.required_span_size()` is representable as a
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) noexcept;
48
+ ```
49
+
50
+ *Constraints:* `is_constructible_v<extents_type, OtherExtents>` is
51
+ `true`.
52
+
53
+ *Preconditions:*
54
+
55
+ - If `extents_type::rank() > 0` is `true`, then for all r in the range
56
+ [0, `extents_type::rank()`), `other.stride(`r`)` equals
57
+ `other.extents().`*`rev-prod-of-extents`*`(`r`)`.
58
+ - `other.required_span_size()` is representable as a value of type
59
+ `index_type` [[basic.fundamental]].
60
+
61
+ *Effects:* Direct-non-list-initializes *extents\_* with
62
+ `other.extents()`.
63
+