OpenKalman
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
std::experimental::mdspan< ElementType, Extents, LayoutPolicy, AccessorPolicy > Class Template Reference

Public Types

using extents_type = Extents
 
using layout_type = LayoutPolicy
 
using accessor_type = AccessorPolicy
 
using mapping_type = typename layout_type::template mapping< extents_type >
 
using element_type = ElementType
 
using value_type = remove_cv_t< element_type >
 
using index_type = typename extents_type::index_type
 
using size_type = typename extents_type::size_type
 
using rank_type = typename extents_type::rank_type
 
using data_handle_type = typename accessor_type::data_handle_type
 
using reference = typename accessor_type::reference
 

Public Member Functions

MDSPAN_INLINE_FUNCTION constexpr index_type extent (size_t r) const noexcept
 
MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdspan (const mdspan &)=default
 
MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdspan (mdspan &&)=default
 
 MDSPAN_TEMPLATE_REQUIRES (class... SizeTypes,(_MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type)) &&_MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeTypes)) &&((sizeof...(SizeTypes)==rank())||(sizeof...(SizeTypes)==rank_dynamic())) &&_MDSPAN_TRAIT(is_constructible, mapping_type, extents_type) &&)) MDSPAN_INLINE_FUNCTION explicit const expr mdspan(data_handle_type p
 
SizeTypes __map_acc_pair_t (mapping_type(extents_type(static_cast< index_type >(std::move(dynamic_extents))...)), accessor_type()))
 
 MDSPAN_TEMPLATE_REQUIRES (class SizeType, size_t N,(_MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&_MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType) &&((N==rank())||(N==rank_dynamic())) &&_MDSPAN_TRAIT(is_constructible, mapping_type, extents_type) &&)) MDSPAN_INLINE_FUNCTION const expr mdspan(data_handle_type p
 
const array< SizeType, N > __map_acc_pair_t (mapping_type(extents_type(dynamic_extents)), accessor_type()))
 
 MDSPAN_FUNCTION_REQUIRES ((MDSPAN_INLINE_FUNCTION constexpr), mdspan,(data_handle_type p, const extents_type &exts),,(_MDSPAN_TRAIT(is_default_constructible, accessor_type) &&_MDSPAN_TRAIT(is_constructible, mapping_type, extents_type)))
 
 MDSPAN_FUNCTION_REQUIRES ((MDSPAN_INLINE_FUNCTION constexpr), mdspan,(data_handle_type p, const mapping_type &m),,(_MDSPAN_TRAIT(is_default_constructible, accessor_type)))
 
MDSPAN_INLINE_FUNCTION constexpr mdspan (data_handle_type p, const mapping_type &m, const accessor_type &a)
 
 MDSPAN_TEMPLATE_REQUIRES (class OtherElementType, class OtherExtents, class OtherLayoutPolicy, class OtherAccessor,(_MDSPAN_TRAIT(is_constructible, mapping_type, typename OtherLayoutPolicy::template mapping< OtherExtents >) &&)) MDSPAN_INLINE_FUNCTION const expr mdspan(const mdspan< OtherElementType
 
OtherAccessor __map_acc_pair_t (other.__mapping_ref(), other.__accessor_ref()))
 
MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED mdspanoperator= (const mdspan &)=default
 
MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED mdspanoperator= (mdspan &&)=default
 
 MDSPAN_TEMPLATE_REQUIRES (class SizeType,(_MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&)) MDSPAN_FORCE_INLINE_FUNCTION const expr reference operator[](const array< SizeType
 
 rank ()> &indices) const
 
 MDSPAN_TEMPLATE_REQUIRES (class Index,(_MDSPAN_TRAIT(is_convertible, Index, index_type) &&_MDSPAN_TRAIT(is_nothrow_constructible, index_type, Index) &&extents_type::rank()==1)) MDSPAN_FORCE_INLINE_FUNCTION const expr reference operator[](Index idx) const
 
 MDSPAN_TEMPLATE_REQUIRES (class... SizeTypes,(_MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type)) &&_MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeTypes)) &&extents_type::rank()==sizeof...(SizeTypes))) MDSPAN_FORCE_INLINE_FUNCTION const expr reference operator()(SizeTypes... indices) const
 
 MDSPAN_TEMPLATE_REQUIRES (class SizeType,(_MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&)) MDSPAN_FORCE_INLINE_FUNCTION const expr reference operator()(const array< SizeType
 
 rank ()> &indices) const
 
MDSPAN_INLINE_FUNCTION constexpr size_t size () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr bool empty () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr const extents_type & extents () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr const data_handle_type & data_handle () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr const mapping_type & mapping () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr const accessor_type & accessor () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr bool is_unique () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr bool is_exhaustive () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr bool is_strided () const noexcept
 
MDSPAN_INLINE_FUNCTION constexpr index_type stride (size_t r) const
 

Static Public Member Functions

static MDSPAN_INLINE_FUNCTION constexpr size_t rank () noexcept
 
static MDSPAN_INLINE_FUNCTION constexpr size_t rank_dynamic () noexcept
 
static MDSPAN_INLINE_FUNCTION constexpr size_t static_extent (size_t r) noexcept
 
static MDSPAN_INLINE_FUNCTION constexpr bool is_always_unique () noexcept
 
static MDSPAN_INLINE_FUNCTION constexpr bool is_always_exhaustive () noexcept
 
static MDSPAN_INLINE_FUNCTION constexpr bool is_always_strided () noexcept
 

Public Attributes

SizeTypes dynamic_extents: __members(std::move(p)
 
const array< SizeType, N > & dynamic_extents: __members(std::move(p)
 
 OtherExtents
 
 OtherLayoutPolicy
 
OtherAccessor & other: __members(other.__ptr_ref()
 

Friends

template<class , class , class , class >
class mdspan
 
MDSPAN_INLINE_FUNCTION friend constexpr void swap (mdspan &x, mdspan &y) noexcept
 

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