[mdspan.syn] (original) (raw)

23 Containers library [containers]

23.7 Views [views]

23.7.3 Multidimensional access [views.multidim]

23.7.3.2 Header synopsis [mdspan.syn]

// all freestanding namespace std { // [mdspan.extents], class template extents template<class IndexType, size_t... Extents> class extents;// [mdspan.extents.dextents], alias template dextents template<class IndexType, size_t Rank> using dextents = see below;// [mdspan.extents.dims], alias template dims template<size_t Rank, class IndexType = size_t> using dims = see below;// [mdspan.layout], layout mapping struct layout_left;struct layout_right;struct layout_stride;template<size_t PaddingValue = dynamic_extent> struct layout_left_padded;template<size_t PaddingValue = dynamic_extent> struct layout_right_padded;// [mdspan.accessor.default], class template default_accessor template<class ElementType> class default_accessor;// [mdspan.accessor.aligned], class template aligned_accessor template<class ElementType, size_t ByteAlignment> class aligned_accessor;// [mdspan.mdspan], class template mdspan template<class ElementType, class Extents, class LayoutPolicy = layout_right,class AccessorPolicy = default_accessor<ElementType>> class mdspan;// [mdspan.sub], submdspan creation template<class OffsetType, class LengthType, class StrideType> struct strided_slice;template<class LayoutMapping> struct submdspan_mapping_result;struct full_extent_t { explicit full_extent_t() = default; };inline constexpr full_extent_t full_extent{};template<class IndexType, class... Extents, class... SliceSpecifiers> constexpr auto submdspan_extents(const extents<IndexType, Extents...>&, SliceSpecifiers...);// [mdspan.sub.sub], submdspan function template template<class ElementType, class Extents, class LayoutPolicy,class AccessorPolicy, class... SliceSpecifiers> constexpr auto submdspan( const mdspan<ElementType, Extents, LayoutPolicy, AccessorPolicy>& src, SliceSpecifiers... slices) -> see below;template<class T, class IndexType> concept index-pair-like = // exposition only pair-like<T> && convertible_to<tuple_element_t<0, T>, IndexType> && convertible_to<tuple_element_t<1, T>, IndexType>;}