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

#include <layout_right.hpp>

Public Types

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

Public Member Functions

constexpr mapping () noexcept=default
 
constexpr mapping (extents_type const &ext) noexcept
 
constexpr mapping (mapping const &) noexcept=default
 
template<typename... Indices>
requires (sizeof...(Indices) == extents_type::rank())
 and (is_convertible_v< Indices, index_type > and ...) and(is_nothrow_constructible_v< index_type
 
template<typename OtherExtents >
requires (extents_type::rank() <= 1) && is_constructible_v<extents_type, OtherExtents>
constexpr explicit (!is_convertible_v< OtherExtents, extents_type >) mapping(layout_left
 
template<typename OtherExtents >
requires is_constructible_v<extents_type, OtherExtents>
constexpr explicit (!is_convertible_v< OtherExtents, extents_type >) mapping(mapping< OtherExtents > const &other) noexcept
 
constexpr auto extents () const noexcept -> extents_type const &
 
Indices and constexpr auto operator() (Indices... indices) const noexcept -> index_type
 
template<typename OtherExtents >
constexpr explicit(extents_type::rank() > 0) mapping(layout_stride constexpr auto operator= (mapping const &) noexcept -> mapping &=default
 
constexpr auto required_span_size () const noexcept -> index_type
 
constexpr auto stride (rank_type r) const noexcept -> index_type requires(extents_type::rank() > 0)
 

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_exhaustive () noexcept -> bool
 
static constexpr auto is_strided () noexcept -> bool
 
static constexpr auto is_unique () noexcept -> bool
 

Friends

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

Member Typedef Documentation

◆ extents_type

◆ index_type

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

◆ layout_type

◆ 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/3]

template<typename Extents >
constexpr mapping ( )
constexprdefaultnoexcept

◆ mapping() [2/3]

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

◆ mapping() [3/3]

template<typename Extents >
constexpr mapping ( extents_type const ext)
inlineconstexprnoexcept

Member Function Documentation

◆ and()

template<typename Extents >
template<typename... Indices>
requires (sizeof...(Indices) == extents_type::rank())
and ( is_convertible_v< Indices, index_type and ...)

◆ explicit() [1/2]

template<typename Extents >
template<typename OtherExtents >
requires (extents_type::rank() <= 1) && is_constructible_v<extents_type, OtherExtents>
constexpr explicit ( !is_convertible_v< OtherExtents, extents_type )
inlineconstexpr

◆ explicit() [2/2]

template<typename Extents >
template<typename OtherExtents >
requires is_constructible_v<extents_type, OtherExtents>
constexpr explicit ( !is_convertible_v< OtherExtents, extents_type ) const &
inlineconstexprnoexcept

◆ extents()

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

◆ is_always_exhaustive()

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

◆ is_always_strided()

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

◆ is_always_unique()

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

◆ is_exhaustive()

template<typename Extents >
static constexpr auto is_exhaustive ( ) -> bool
inlinestaticconstexprnoexcept

◆ is_strided()

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

◆ is_unique()

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

◆ operator()()

template<typename Extents >
Indices and constexpr auto operator() ( Indices...  indices) const -> index_type
inlineconstexprnoexcept

◆ operator=()

template<typename Extents >
template<typename OtherExtents >
constexpr explicit(extents_type::rank() > 0) mapping(layout_stride constexpr auto operator= ( mapping< Extents > const ) -> mapping &=default
constexprdefaultnoexcept

◆ required_span_size()

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

◆ stride()

template<typename Extents >
constexpr auto stride ( rank_type  r) const -> index_type requires(extents_type::rank() > 0)
inlineconstexprnoexcept

Friends And Related Symbol Documentation

◆ operator==

template<typename Extents >
template<typename OtherExtents >
constexpr auto operator== ( mapping< Extents > const lhs,
mapping< OtherExtents > const rhs 
) -> bool
friend

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