Iros
 
Loading...
Searching...
No Matches
di::vocab::MDSpan< Element, Extents, Layout, Accessor > Class Template Reference

#include <di/vocab/md/mdspan.h>

Public Types

using ExtentsType = Extents
 
using LayoutType = Layout
 
using AccessorType = Accessor
 
using MappingType = typename LayoutType::template Mapping<ExtentsType>
 
using ElementType = Element
 
using ValueType = meta::RemoveCV<ElementType>
 
using SizeType = typename ExtentsType::SizeType
 
using RankType = typename ExtentsType::RankType
 
using DataHandle = typename AccessorType::DataHandle
 
using Reference = typename AccessorType::Reference
 

Public Member Functions

constexpr auto extent (RankType r) const -> SizeType
 
 MDSpan ()=default
 
 MDSpan (MDSpan const &)=default
 
 MDSpan (MDSpan &&)=default
 
template<typename... OtherSizeTypes>
requires ((concepts::ConvertibleTo<OtherSizeTypes, SizeType> && ...) && (sizeof...(OtherSizeTypes) == rank() || ((sizeof...(OtherSizeTypes) == rank_dynamic()) && (concepts::ConstructibleFrom<MappingType, ExtentsType> && concepts::DefaultConstructible<AccessorType>) )))
constexpr MDSpan (DataHandle data_handle, OtherSizeTypes... exts)
 
template<typename OtherSizeType, size_t N>
requires (concepts::ConvertibleTo<OtherSizeType, SizeType> && (N == rank() || N == rank_dynamic()) && concepts::ConstructibleFrom<MappingType, ExtentsType> && concepts::DefaultConstructible<AccessorType>)
constexpr explicit (N !=rank_dynamic()) MDSpan(DataHandle data_handle
 
constexpr Span< OtherSizeType, N > m_mapping (ExtentsType(exts))
 
template<typename OtherSizeType, size_t N>
requires (concepts::ConvertibleTo<OtherSizeType, SizeType> && (N == rank() || N == rank_dynamic()) && concepts::ConstructibleFrom<MappingType, ExtentsType> && concepts::DefaultConstructible<AccessorType>)
constexpr explicit (N !=rank_dynamic()) MDSpan(DataHandle data_handle
 
constexpr Array< OtherSizeType, N > const m_mapping (ExtentsType(exts))
 
constexpr MDSpan (DataHandle data_handle, ExtentsType const &ext)
 
constexpr MDSpan (DataHandle data_handle, MappingType const &mapping)
 
constexpr MDSpan (DataHandle data_handle, MappingType const &mapping, AccessorType const &accessor)
 
template<typename OtherElementType, typename OtherExtents, typename OtherLayout, typename OtherAccessor>
requires (concepts::ConstructibleFrom<MappingType, typename OtherLayout::template Mapping<OtherExtents> const&> && concepts::ConstructibleFrom<AccessorType, OtherAccessor const&>)
 explicit (!concepts::ConvertibleTo< typename OtherLayout::template Mapping< OtherExtents > const &, MappingType >||!concepts::ConvertibleTo< OtherAccessor const &, AccessorType >) const expr MDSpan(MDSpan< OtherElementType
 
OtherAccessor const m_mapping (other.mapping())
 
OtherAccessor const m_accessor (other.accessor())
 
auto operator= (MDSpan const &) -> MDSpan &=default
 
auto operator= (MDSpan &&) -> MDSpan &=default
 
template<typename... OtherSizeTypes>
requires (sizeof...(OtherSizeTypes) == rank() && (concepts::ConvertibleTo<OtherSizeTypes, SizeType> && ...))
constexpr auto operator[] (OtherSizeTypes... indices) const -> Reference
 
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
constexpr auto operator[] (Span< OtherSizeType, rank()> indices) const -> Reference
 
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
constexpr auto operator[] (Array< OtherSizeType, rank()> const &indices) const -> Reference
 
template<typename... OtherSizeTypes>
requires (sizeof...(OtherSizeTypes) == rank() && (concepts::ConvertibleTo<OtherSizeTypes, SizeType> && ...))
constexpr auto operator() (OtherSizeTypes... indices) const -> Reference
 
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
constexpr auto operator() (Span< OtherSizeType, rank()> indices) const -> Reference
 
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
constexpr auto operator() (Array< OtherSizeType, rank()> const &indices) const -> Reference
 
constexpr auto each () const
 
constexpr auto size () const -> size_t
 
constexpr auto empty () const -> bool
 
constexpr auto extents () const -> ExtentsType const &
 
constexpr auto data () const -> DataHandle const &
 
constexpr auto mapping () const -> MappingType const &
 
constexpr auto accessor () const -> AccessorType const &
 
constexpr auto is_unique () const -> bool
 
constexpr auto is_contiguous () const -> bool
 
constexpr auto is_strided () const -> bool
 
constexpr auto stride (RankType r) const -> SizeType
 

Static Public Member Functions

static constexpr auto rank () -> RankType
 
static constexpr auto rank_dynamic () -> RankType
 
static constexpr auto static_extent (RankType r) -> size_t
 
static constexpr auto is_always_unique () -> bool
 
static constexpr auto is_always_contiguous () -> bool
 
static constexpr auto is_always_strided () -> bool
 

Public Attributes

constexpr Span< OtherSizeType, N > exts: m_data_handle(util::move(data_handle))
 
constexpr Array< OtherSizeType, N > const & exts: m_data_handle(util::move(data_handle))
 
 OtherExtents
 
 OtherLayout
 
OtherAccessor const & other: m_data_handle(other.data())
 

Member Typedef Documentation

◆ AccessorType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::AccessorType = Accessor

◆ DataHandle

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::DataHandle = typename AccessorType::DataHandle

◆ ElementType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::ElementType = Element

◆ ExtentsType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::ExtentsType = Extents

◆ LayoutType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::LayoutType = Layout

◆ MappingType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MappingType = typename LayoutType::template Mapping<ExtentsType>

◆ RankType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::RankType = typename ExtentsType::RankType

◆ Reference

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::Reference = typename AccessorType::Reference

◆ SizeType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::SizeType = typename ExtentsType::SizeType

◆ ValueType

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::ValueType = meta::RemoveCV<ElementType>

Constructor & Destructor Documentation

◆ MDSpan() [1/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( )
default

◆ MDSpan() [2/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( MDSpan< Element, Extents, Layout, Accessor > const & )
default

◆ MDSpan() [3/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( MDSpan< Element, Extents, Layout, Accessor > && )
default

◆ MDSpan() [4/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename... OtherSizeTypes>
requires ((concepts::ConvertibleTo<OtherSizeTypes, SizeType> && ...) && (sizeof...(OtherSizeTypes) == rank() || ((sizeof...(OtherSizeTypes) == rank_dynamic()) && (concepts::ConstructibleFrom<MappingType, ExtentsType> && concepts::DefaultConstructible<AccessorType>) )))
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( DataHandle data_handle,
OtherSizeTypes... exts )
inlineexplicitconstexpr

◆ MDSpan() [5/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( DataHandle data_handle,
ExtentsType const & ext )
inlineconstexpr

◆ MDSpan() [6/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( DataHandle data_handle,
MappingType const & mapping )
inlineconstexpr

◆ MDSpan() [7/7]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MDSpan ( DataHandle data_handle,
MappingType const & mapping,
AccessorType const & accessor )
inlineconstexpr

Member Function Documentation

◆ accessor()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::accessor ( ) const -> AccessorType const&
inlineconstexpr

◆ data()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::data ( ) const -> DataHandle const&
inlineconstexpr

◆ each()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::each ( ) const
inlineconstexpr

◆ empty()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::empty ( ) const -> bool
inlineconstexpr

◆ explicit() [1/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherElementType, typename OtherExtents, typename OtherLayout, typename OtherAccessor>
requires (concepts::ConstructibleFrom<MappingType, typename OtherLayout::template Mapping<OtherExtents> const&> && concepts::ConstructibleFrom<AccessorType, OtherAccessor const&>)
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::explicit ( !concepts::ConvertibleTo< typename OtherLayout::template Mapping< OtherExtents > const &, MappingType >||!concepts::ConvertibleTo< OtherAccessor const &, AccessorType > ) const

◆ explicit() [2/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherSizeType, size_t N>
requires (concepts::ConvertibleTo<OtherSizeType, SizeType> && (N == rank() || N == rank_dynamic()) && concepts::ConstructibleFrom<MappingType, ExtentsType> && concepts::DefaultConstructible<AccessorType>)
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::explicit ( N ! = rank_dynamic())
constexpr

◆ explicit() [3/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherSizeType, size_t N>
requires (concepts::ConvertibleTo<OtherSizeType, SizeType> && (N == rank() || N == rank_dynamic()) && concepts::ConstructibleFrom<MappingType, ExtentsType> && concepts::DefaultConstructible<AccessorType>)
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::explicit ( N ! = rank_dynamic())
constexpr

◆ extent()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::extent ( RankType r) const -> SizeType
inlineconstexpr

◆ extents()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::extents ( ) const -> ExtentsType const&
inlineconstexpr

◆ is_always_contiguous()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
static constexpr auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::is_always_contiguous ( ) -> bool
inlinestaticconstexpr

◆ is_always_strided()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
static constexpr auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::is_always_strided ( ) -> bool
inlinestaticconstexpr

◆ is_always_unique()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
static constexpr auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::is_always_unique ( ) -> bool
inlinestaticconstexpr

◆ is_contiguous()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::is_contiguous ( ) const -> bool
inlineconstexpr

◆ is_strided()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::is_strided ( ) const -> bool
inlineconstexpr

◆ is_unique()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::is_unique ( ) const -> bool
inlineconstexpr

◆ m_accessor()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
OtherAccessor const di::vocab::MDSpan< Element, Extents, Layout, Accessor >::m_accessor ( other. accessor())
inline

◆ m_mapping() [1/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
Span< OtherSizeType, N > di::vocab::MDSpan< Element, Extents, Layout, Accessor >::m_mapping ( ExtentsType(exts) )
inline

◆ m_mapping() [2/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
Array< OtherSizeType, N > const di::vocab::MDSpan< Element, Extents, Layout, Accessor >::m_mapping ( ExtentsType(exts) )
inline

◆ m_mapping() [3/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
OtherAccessor const di::vocab::MDSpan< Element, Extents, Layout, Accessor >::m_mapping ( other. mapping())

◆ mapping()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::mapping ( ) const -> MappingType const&
inlineconstexpr

◆ operator()() [1/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator() ( Array< OtherSizeType, rank()> const & indices) const -> Reference
inlineconstexpr

◆ operator()() [2/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename... OtherSizeTypes>
requires (sizeof...(OtherSizeTypes) == rank() && (concepts::ConvertibleTo<OtherSizeTypes, SizeType> && ...))
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator() ( OtherSizeTypes... indices) const -> Reference
inlineconstexpr

◆ operator()() [3/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator() ( Span< OtherSizeType, rank()> indices) const -> Reference
inlineconstexpr

◆ operator=() [1/2]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator= ( MDSpan< Element, Extents, Layout, Accessor > && ) -> MDSpan &=default
default

◆ operator=() [2/2]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator= ( MDSpan< Element, Extents, Layout, Accessor > const & ) -> MDSpan &=default
default

◆ operator[]() [1/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator[] ( Array< OtherSizeType, rank()> const & indices) const -> Reference
inlineconstexpr

◆ operator[]() [2/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename... OtherSizeTypes>
requires (sizeof...(OtherSizeTypes) == rank() && (concepts::ConvertibleTo<OtherSizeTypes, SizeType> && ...))
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator[] ( OtherSizeTypes... indices) const -> Reference
inlineconstexpr

◆ operator[]() [3/3]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
template<typename OtherSizeType>
requires (concepts::ConvertibleTo<OtherSizeType const&, SizeType>)
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::operator[] ( Span< OtherSizeType, rank()> indices) const -> Reference
inlineconstexpr

◆ rank()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
static constexpr auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::rank ( ) -> RankType
inlinestaticconstexpr

◆ rank_dynamic()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
static constexpr auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::rank_dynamic ( ) -> RankType
inlinestaticconstexpr

◆ size()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::size ( ) const -> size_t
inlineconstexpr

◆ static_extent()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
static constexpr auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::static_extent ( RankType r) -> size_t
inlinestaticconstexpr

◆ stride()

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
auto di::vocab::MDSpan< Element, Extents, Layout, Accessor >::stride ( RankType r) const -> SizeType
inlineconstexpr

Member Data Documentation

◆ exts [1/2]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
Span<OtherSizeType, N> di::vocab::MDSpan< Element, Extents, Layout, Accessor >::exts

◆ exts [2/2]

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
Array<OtherSizeType, N> const& di::vocab::MDSpan< Element, Extents, Layout, Accessor >::exts

◆ other

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
OtherAccessor const& di::vocab::MDSpan< Element, Extents, Layout, Accessor >::other

◆ OtherExtents

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::OtherExtents

◆ OtherLayout

template<typename Element, concepts::Extents Extents, concepts::MDLayout< Extents > Layout = LayoutRight, concepts::MDAccessor Accessor = DefaultAccessor<Element>>
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::OtherLayout

The documentation for this class was generated from the following file: