From Jason Turner

[mdspan.accessor.default]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpyp4wljne/{from.md → to.md} +56 -0
tmp/tmpyp4wljne/{from.md → to.md} RENAMED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##### Class template `default_accessor` <a id="mdspan.accessor.default">[[mdspan.accessor.default]]</a>
2
+
3
+ ###### Overview <a id="mdspan.accessor.default.overview">[[mdspan.accessor.default.overview]]</a>
4
+
5
+ ``` cpp
6
+ namespace std {
7
+ template<class ElementType>
8
+ struct default_accessor {
9
+ using offset_policy = default_accessor;
10
+ using element_type = ElementType;
11
+ using reference = ElementType&;
12
+ using data_handle_type = ElementType*;
13
+
14
+ constexpr default_accessor() noexcept = default;
15
+ template<class OtherElementType>
16
+ constexpr default_accessor(default_accessor<OtherElementType>) noexcept;
17
+ constexpr reference access(data_handle_type p, size_t i) const noexcept;
18
+ constexpr data_handle_type offset(data_handle_type p, size_t i) const noexcept;
19
+ };
20
+ }
21
+ ```
22
+
23
+ `default_accessor` meets the accessor policy requirements.
24
+
25
+ `ElementType` is required to be a complete object type that is neither
26
+ an abstract class type nor an array type.
27
+
28
+ Each specialization of `default_accessor` is a trivially copyable type
29
+ that models `semiregular`.
30
+
31
+ [0, n) is an accessible range for an object `p` of type
32
+ `data_handle_type` and an object of type `default_accessor` if and only
33
+ if \[`p`, `p + `n) is a valid range.
34
+
35
+ ###### Members <a id="mdspan.accessor.default.members">[[mdspan.accessor.default.members]]</a>
36
+
37
+ ``` cpp
38
+ template<class OtherElementType>
39
+ constexpr default_accessor(default_accessor<OtherElementType>) noexcept {}
40
+ ```
41
+
42
+ *Constraints:*
43
+ `is_convertible_v<OtherElementType(*)[], element_type(*)[]>` is `true`.
44
+
45
+ ``` cpp
46
+ constexpr reference access(data_handle_type p, size_t i) const noexcept;
47
+ ```
48
+
49
+ *Effects:* Equivalent to: `return p[i];`
50
+
51
+ ``` cpp
52
+ constexpr data_handle_type offset(data_handle_type p, size_t i) const noexcept;
53
+ ```
54
+
55
+ *Effects:* Equivalent to: `return p + i;`
56
+