std::layout_left::mapping

From cppreference.com
< cpp‎ | container‎ | mdspan‎ | layout left
 
 
 
 
 
Defined in header <mdspan>
template< class Extents >
class layout_left::mapping;
(since C++23)

The class template layout_left::mapping controls how multidimensional indices are mapped in a column-major manner to a one-dimensional value representing the offset. The mapping has stride 1 at leftmost extent and strides increase left-to-right as the products of extents.

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_left

Member objects

Member name Definition
extents_ (private) The extents of type extents_type.
(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)
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 static 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_right
(public member class template of std::layout_right)
a layout mapping of layout_stride
(public member class template of std::layout_stride)