std::layout_stride:: mapping
Defined in header
<mdspan>
|
||
template
<
class
Extents
>
class layout_stride :: mapping ; |
(since C++23) | |
The class template
layout_stride::mapping
controls how multidimensional indices are mapped with user-defined strides to a one-dimensional value representing the offset.
Every specialization of
mapping
is a
LayoutMapping
and a
TriviallyCopyable
type which satisfies
regular
.
The program is ill-formed if the size of the multidimensional index space Extents ( ) is not representable as a value of type Extents :: index_type when Extents :: rank_dynamic ( ) is 0 .
Template parameters
Extents | - |
specifies number of dimensions, their sizes, and which are known at compile time. Must be a specialization of
std::extents
.
|
Member types
Member type | Definition |
extents_type
|
Extents
|
index_type
|
extents_type::index_type
|
size_type
|
extents_type::size_type
|
rank_type
|
extents_type::rank_type
|
layout_type
|
std::layout_stride |
Member constants
Member | Definition |
constexpr
rank_type
rank_
(private)
[static]
|
extents_type
::
rank
(
)
( exposition-only static member constant* ) |
Member objects
Member name | Definition |
extents_
(private)
|
The extents of type
extents_type
.
( exposition-only member object* ) |
strides_
(private)
|
The strides of type
std::array<index_type, rank_>
.
( exposition-only member object* ) |
Member functions
constructs a new mapping
(public member function) |
|
assigns a mapping
(public member function) |
|
Observers |
|
obtains the extents object
(public member function) |
|
obtains the array of strides
(public member function) |
|
returns the required size of the mapping
(public member function) |
|
maps multidimensional indices into an offset value
(public member function) |
|
[static]
|
determines if this mapping is unique (every combination of indices maps to a different underlying element)
(public static member function) |
determines if this mapping is exhaustive (every underlying element can be accessed with some combination of indices)
(public member function) |
|
[static]
|
determines if this mapping is strided (in each dimension, incrementing an index jumps over the same number of underlying elements every time)
(public static member function) |
[static]
|
determines if this layout mapping is always unique
(public static member function) |
[static]
|
determines if this layout mapping is always exhaustive
(public static member function) |
[static]
|
determines if this layout mapping is always strided
(public static member function) |
obtains the stride along the specified dimension
(public member function) |
Non-member functions
compares this layout mapping with other mapping
(function template) |
|
calculates the mapping and data handle offset used for
subdmspan
(public member function) |
See also
a layout mapping of
layout_left
(public member class template of
std::layout_left
)
|
|
a layout mapping of
layout_right
(public member class template of
std::layout_right
)
|