std::layout_stride::mapping

From cppreference.com
 
 
 
 
 
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)
determines if this layout mapping is always unique
(public static member function)
determines if this layout mapping is always exhaustive
(public static member function)
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)