Iros
 
Loading...
Searching...
No Matches
di::LayoutRight::Mapping< Extents > Class Template Reference

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

Public Types

using ExtentsType = Extents
 
using SizeType = typename ExtentsType::SizeType
 
using RankType = typename ExtentsType::RankType
 
using LayoutType = LayoutRight
 

Public Member Functions

 Mapping ()=default
 
 Mapping (Mapping const &)=default
 
 Mapping (Mapping &&)=default
 
constexpr Mapping (ExtentsType const &extents)
 
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
constexpr explicit (!concepts::ConvertibleTo< OtherExtents, ExtentsType >) Mapping(Mapping< OtherExtents > const &extents)
 
template<concepts::Extents OtherExtents>
requires (ExtentsType::rank() <= 1 && concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
constexpr explicit (!concepts::ConvertibleTo< OtherExtents, ExtentsType >) Mapping(LayoutLeft
 
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
constexpr explicit (ExtentsType::rank() > 0) Mapping(LayoutStride
 
auto operator= (Mapping const &) -> Mapping &=default
 
constexpr auto extents () const -> ExtentsType const &
 
constexpr auto required_span_size () const -> SizeType
 
template<typename... Indices>
requires (sizeof...(Indices) == ExtentsType::rank() && (concepts::ConvertibleTo<Indices, SizeType> && ...))
constexpr auto operator() (Indices... indices) const -> SizeType
 
constexpr auto stride (RankType i) const -> SizeType
 

Static Public Member Functions

static constexpr auto is_always_unique () -> bool
 
static constexpr auto is_always_exhaustive () -> bool
 
static constexpr auto is_always_strided () -> bool
 
static constexpr auto is_unique () -> bool
 
static constexpr auto is_exhaustive () -> bool
 
static constexpr auto is_strided () -> bool
 

Friends

template<typename OtherExtents>
requires (Extents::rank() == OtherExtents::rank())
constexpr friend auto operator== (Mapping const &a, Mapping< OtherExtents > const &b) -> bool
 

Member Typedef Documentation

◆ ExtentsType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::ExtentsType = Extents

◆ LayoutType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::LayoutType = LayoutRight

◆ RankType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::RankType = typename ExtentsType::RankType

◆ SizeType

template<typename Extents>
using di::vocab::LayoutRight::Mapping< Extents >::SizeType = typename ExtentsType::SizeType

Constructor & Destructor Documentation

◆ Mapping() [1/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( )
default

◆ Mapping() [2/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( Mapping< Extents > const & )
default

◆ Mapping() [3/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( Mapping< Extents > && )
default

◆ Mapping() [4/4]

template<typename Extents>
di::vocab::LayoutRight::Mapping< Extents >::Mapping ( ExtentsType const & extents)
inlineconstexpr

Member Function Documentation

◆ explicit() [1/3]

template<typename Extents>
template<concepts::Extents OtherExtents>
requires (ExtentsType::rank() <= 1 && concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
di::vocab::LayoutRight::Mapping< Extents >::explicit ( !concepts::ConvertibleTo< OtherExtents, ExtentsType > )
inlineconstexpr

◆ explicit() [2/3]

template<typename Extents>
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
di::vocab::LayoutRight::Mapping< Extents >::explicit ( !concepts::ConvertibleTo< OtherExtents, ExtentsType > ) const &
inlineconstexpr

◆ explicit() [3/3]

template<typename Extents>
template<concepts::Extents OtherExtents>
requires (concepts::ConstructibleFrom<ExtentsType, OtherExtents>)
di::vocab::LayoutRight::Mapping< Extents >::explicit ( ExtentsType::rank() ,
0  )
inlineconstexpr

◆ extents()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::extents ( ) const -> ExtentsType const&
inlineconstexpr

◆ is_always_exhaustive()

template<typename Extents>
static constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_always_exhaustive ( ) -> bool
inlinestaticconstexpr

◆ is_always_strided()

template<typename Extents>
static constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_always_strided ( ) -> bool
inlinestaticconstexpr

◆ is_always_unique()

template<typename Extents>
static constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_always_unique ( ) -> bool
inlinestaticconstexpr

◆ is_exhaustive()

template<typename Extents>
static constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_exhaustive ( ) -> bool
inlinestaticconstexpr

◆ is_strided()

template<typename Extents>
static constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_strided ( ) -> bool
inlinestaticconstexpr

◆ is_unique()

template<typename Extents>
static constexpr auto di::vocab::LayoutRight::Mapping< Extents >::is_unique ( ) -> bool
inlinestaticconstexpr

◆ operator()()

template<typename Extents>
template<typename... Indices>
requires (sizeof...(Indices) == ExtentsType::rank() && (concepts::ConvertibleTo<Indices, SizeType> && ...))
auto di::vocab::LayoutRight::Mapping< Extents >::operator() ( Indices... indices) const -> SizeType
inlineconstexpr

◆ operator=()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::operator= ( Mapping< Extents > const & ) -> Mapping &=default
default

◆ required_span_size()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::required_span_size ( ) const -> SizeType
inlineconstexpr

◆ stride()

template<typename Extents>
auto di::vocab::LayoutRight::Mapping< Extents >::stride ( RankType i) const -> SizeType
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator==

template<typename Extents>
template<typename OtherExtents>
requires (Extents::rank() == OtherExtents::rank())
friend auto operator== ( Mapping< Extents > const & a,
Mapping< OtherExtents > const & b ) -> bool
friend

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