C++ named requirements: AccessorPolicy (since C++23)
AccessorPolicy defines how elements are accessed from a given data handle to such elements and an index. It is used as a policy in std:: mdspan to specify the access to a reference of an element using an underlying 1D index.
Contents |
Requirements
A type
A
satisfies
AccessorPolicy
if it models
copyable
, and the following are
true
:
- std:: is_nothrow_move_constructible_v < A >
- std:: is_nothrow_move_assignable_v < A >
- std:: is_nothrow_swappable_v < A >
And, given the following types and values, the expressions shown in the table below are valid and have the indicated semantics:
Legend
| Type | Definition |
A
|
an accessor policy type |
OP
|
an offset policy type |
| Value | Definition |
| a |
a value of type (possibly const-qualified)
A
|
| p |
a value of type (possibly const-qualified)
A::data_handle_type
|
| i , j , n | values of type std:: size_t |
Member types
| Type | Definition | Requirements |
|---|---|---|
A::element_type
|
unspecified |
|
A::data_handle_type
|
unspecified [1] |
|
A::reference
|
unspecified [2] |
|
A::offset_policy
|
OP
|
|
Member functions
| Expression | Return type | Semantics |
|---|---|---|
| a. access ( p, i ) | typename A :: reference |
|
| a. offset ( p, i ) |
typename
A
::
offset_policy
::
data_handle_type
|
|
Accessible range
A range of indices
[
0
,
N
)
is an
accessible range
of a given data handle and an accessor if, for each index in the range, the
access
member function produces a valid reference to an element.
Standard library
The following standard library types satisfy AccessorPolicy requirements:
|
(C++23)
|
a type for indexed access to elements of
mdspan
(class template) |
|
(C++26)
|
a type for aligned access to elements of
mdspan
(class template) |
|
Defined in namespace
std::linalg
|
|
|
(C++26)
|
std::mdspan
accessor policy whose reference represents the product of a scaling factor that is fixed and its nested
std::mdspan
accessor's reference
(class template) |
|
(C++26)
|
std::mdspan
accessor policy whose reference represents the complex conjugate of its nested
std::mdspan
accessor's reference
(class template) |