tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
layout_stride::mapping< Extents > Struct Template Reference

#include <layout_stride.hpp>

Public Types

using extents_type = Extents
 
using index_type = typename extents_type::index_type
 
using layout_type = layout_stride
 
using rank_type = typename extents_type::rank_type
 
using size_type = typename extents_type::size_type
 

Public Member Functions

constexpr mapping () noexcept=default
 
template<typename OtherIndexType>
requires (is_convertible_v<OtherIndexType const&, index_type> and is_nothrow_constructible_v<index_type, OtherIndexType const&>)
constexpr mapping (extents_type const &ext, array< OtherIndexType, rank > const &s) noexcept
 
template<typename OtherIndexType>
requires (is_convertible_v<OtherIndexType const&, index_type> and is_nothrow_constructible_v<index_type, OtherIndexType const&>)
constexpr mapping (extents_type const &ext, span< OtherIndexType, rank > s) noexcept
 
constexpr mapping (mapping const &) noexcept=default
 
template<typename StridedLayoutMapping>
constexpr explicit (false) mapping(StridedLayoutMapping const &) noexcept
 
constexpr auto extents () const noexcept -> extents_type const &
 
constexpr auto is_exhaustive () const noexcept -> bool
 
template<typename... Indices>
requires ( (sizeof...(Indices) == rank) // and (is_convertible_v<Indices, index_type> and ...) // and (is_nothrow_constructible_v<index_type, Indices> and ...) )
constexpr auto operator() (Indices... is) const noexcept -> index_type
 
constexpr auto operator= (mapping const &) noexcept -> mapping &=default
 
constexpr auto required_span_size () const noexcept -> index_type
 
constexpr auto stride (rank_type i) const noexcept -> index_type
 
constexpr auto strides () const noexcept -> array< index_type, rank >
 

Static Public Member Functions

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

Friends

template<typename OtherMapping>
constexpr auto operator== (mapping const &, OtherMapping const &) noexcept -> bool
 

Member Typedef Documentation

◆ extents_type

template<typename Extents>
using extents_type = Extents

◆ index_type

template<typename Extents>
using index_type = typename extents_type::index_type

◆ layout_type

template<typename Extents>
using layout_type = layout_stride

◆ rank_type

template<typename Extents>
using rank_type = typename extents_type::rank_type

◆ size_type

template<typename Extents>
using size_type = typename extents_type::size_type

Constructor & Destructor Documentation

◆ mapping() [1/4]

template<typename Extents>
mapping ( )
constexprdefaultnoexcept

◆ mapping() [2/4]

template<typename Extents>
mapping ( mapping< Extents > const & )
constexprdefaultnoexcept

◆ mapping() [3/4]

template<typename Extents>
template<typename OtherIndexType>
requires (is_convertible_v<OtherIndexType const&, index_type> and is_nothrow_constructible_v<index_type, OtherIndexType const&>)
mapping ( extents_type const & ext,
span< OtherIndexType, rank > s )
inlineconstexprnoexcept

◆ mapping() [4/4]

template<typename Extents>
template<typename OtherIndexType>
requires (is_convertible_v<OtherIndexType const&, index_type> and is_nothrow_constructible_v<index_type, OtherIndexType const&>)
mapping ( extents_type const & ext,
array< OtherIndexType, rank > const & s )
inlineconstexprnoexcept

Member Function Documentation

◆ explicit()

template<typename Extents>
template<typename StridedLayoutMapping>
explicit ( false ) const &
constexprnoexcept

◆ extents()

template<typename Extents>
auto extents ( ) const -> extents_type const&
inlinenodiscardconstexprnoexcept

◆ is_always_exhaustive()

template<typename Extents>
constexpr auto is_always_exhaustive ( ) -> bool
inlinestaticnodiscardconstexprnoexcept

◆ is_always_strided()

template<typename Extents>
constexpr auto is_always_strided ( ) -> bool
inlinestaticnodiscardconstexprnoexcept

◆ is_always_unique()

template<typename Extents>
constexpr auto is_always_unique ( ) -> bool
inlinestaticnodiscardconstexprnoexcept

◆ is_exhaustive()

template<typename Extents>
auto is_exhaustive ( ) const -> bool
nodiscardconstexprnoexcept

◆ is_strided()

template<typename Extents>
constexpr auto is_strided ( ) -> bool
inlinestaticnodiscardconstexprnoexcept

◆ is_unique()

template<typename Extents>
constexpr auto is_unique ( ) -> bool
inlinestaticnodiscardconstexprnoexcept

◆ operator()()

template<typename Extents>
template<typename... Indices>
requires ( (sizeof...(Indices) == rank) // and (is_convertible_v<Indices, index_type> and ...) // and (is_nothrow_constructible_v<index_type, Indices> and ...) )
auto operator() ( Indices... is) const -> index_type
inlinenodiscardconstexprnoexcept

◆ operator=()

template<typename Extents>
auto operator= ( mapping< Extents > const & ) -> mapping &=default
constexprdefaultnoexcept

◆ required_span_size()

template<typename Extents>
auto required_span_size ( ) const -> index_type
nodiscardconstexprnoexcept

◆ stride()

template<typename Extents>
auto stride ( rank_type i) const -> index_type
inlinenodiscardconstexprnoexcept

◆ strides()

template<typename Extents>
auto strides ( ) const -> array<index_type, rank>
inlinenodiscardconstexprnoexcept

Friends And Related Symbol Documentation

◆ operator==

template<typename Extents>
template<typename OtherMapping>
auto operator== ( mapping< Extents > const & ,
OtherMapping const &  ) -> bool
friend

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