#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()) |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::AccessorType = Accessor |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::DataHandle = typename AccessorType::DataHandle |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::ElementType = Element |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::ExtentsType = Extents |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::LayoutType = Layout |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::MappingType = typename LayoutType::template Mapping<ExtentsType> |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::RankType = typename ExtentsType::RankType |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::Reference = typename AccessorType::Reference |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::SizeType = typename ExtentsType::SizeType |
using di::vocab::MDSpan< Element, Extents, Layout, Accessor >::ValueType = meta::RemoveCV<ElementType> |
|
default |
|
default |
|
default |
|
inlineexplicitconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::explicit | ( | !concepts::ConvertibleTo< typename OtherLayout::template Mapping< OtherExtents > const &, MappingType >||!concepts::ConvertibleTo< OtherAccessor const &, AccessorType > | ) | const |
|
constexpr |
|
constexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
|
inline |
|
inline |
OtherAccessor const di::vocab::MDSpan< Element, Extents, Layout, Accessor >::m_mapping | ( | other. | mapping() | ) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
default |
|
default |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
Span<OtherSizeType, N> di::vocab::MDSpan< Element, Extents, Layout, Accessor >::exts |
Array<OtherSizeType, N> const& di::vocab::MDSpan< Element, Extents, Layout, Accessor >::exts |
OtherAccessor const& di::vocab::MDSpan< Element, Extents, Layout, Accessor >::other |
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::OtherExtents |
di::vocab::MDSpan< Element, Extents, Layout, Accessor >::OtherLayout |