![]() |
Arene Base
Fundamental Utilities For Safety Critical C++
|
represents a multidimensional index space More...

Public Types | |
| using | index_type = IndexType |
| The specified index type for the extents. | |
| using | rank_type = typename extent_sequence_type::rank_type |
| The type of the rank. | |
| using | size_type = std::make_unsigned_t<index_type> |
| An unsigned type for representing an index into a dimension. | |
Public Member Functions | |
| constexpr | extents () noexcept |
Construct an extents object with all the dynamic extents set to zero, if any. | |
| template<typename OtherIndexType, std::size_t N, constraints< std::enable_if_t< N==rank()>, std::enable_if_t< N !=rank_dynamic()>, std::enable_if_t< std::is_convertible< OtherIndexType, IndexType >::value >, std::enable_if_t< std::is_nothrow_constructible< IndexType, OtherIndexType >::value > > = nullptr> | |
| constexpr | extents (array< OtherIndexType, N > const &exts) noexcept |
Construct an extents object with the specified list of extents. | |
| template<typename OtherIndexType, constraints< std::enable_if_t< std::is_convertible< OtherIndexType, IndexType >::value >, std::enable_if_t< std::is_nothrow_constructible< IndexType, OtherIndexType >::value > > = nullptr> | |
| constexpr | extents (array< OtherIndexType, rank_dynamic()> const &exts) noexcept |
Construct an extents object with the specified list of extents. | |
| template<typename OtherIndexType, std::size_t... OtherExtents, constraints< std::enable_if_t< !copy_from_other_extents_is_explicit_v< OtherIndexType, mdspan_detail::extent_sequence< OtherExtents... > > >, std::enable_if_t< sizeof...(OtherExtents)==rank()>, std::enable_if_t<(Extents==OtherExtents)||(Extents==dynamic_extent)||(OtherExtents==dynamic_extent)>... > = nullptr> | |
| constexpr | extents (extents< OtherIndexType, OtherExtents... > const &source_extents) noexcept |
Construct an extents object with the same set of extents as the source extents object. | |
| template<typename OtherIndexType, std::size_t... OtherExtents, constraints< std::enable_if_t< copy_from_other_extents_is_explicit_v< OtherIndexType, mdspan_detail::extent_sequence< OtherExtents... > > >, std::enable_if_t< sizeof...(OtherExtents)==rank()>, std::enable_if_t<(Extents==OtherExtents)||(Extents==dynamic_extent)||(OtherExtents==dynamic_extent)>... > = nullptr> | |
| constexpr | extents (extents< OtherIndexType, OtherExtents... > const &source_extents) noexcept |
Construct an extents object with the same set of extents as the source extents object. | |
| template<typename... OtherIndexTypes, constraints< std::enable_if_t< sizeof...(OtherIndexTypes)==rank_dynamic()>, std::enable_if_t< all_of_v< std::is_convertible< OtherIndexTypes, IndexType >::value... > >, std::enable_if_t< all_of_v< std::is_nothrow_constructible< IndexType, OtherIndexTypes >::value... > > > = nullptr> | |
| constexpr | extents (OtherIndexTypes... exts) noexcept |
Construct an extents object with the specified list of dynamic extents. | |
| template<typename... OtherIndexTypes, constraints< std::enable_if_t< sizeof...(OtherIndexTypes)==rank()>, std::enable_if_t< sizeof...(OtherIndexTypes) !=rank_dynamic()>, std::enable_if_t< all_of_v< std::is_convertible< OtherIndexTypes, IndexType >::value... > >, std::enable_if_t< all_of_v< std::is_nothrow_constructible< IndexType, OtherIndexTypes >::value... > > > = nullptr> | |
| constexpr | extents (OtherIndexTypes... exts) noexcept |
Construct an extents object with the specified list of extents. | |
| template<typename OtherIndexType, std::size_t N, constraints< std::enable_if_t< N==rank()>, std::enable_if_t< N !=rank_dynamic()>, std::enable_if_t< std::is_convertible< OtherIndexType, IndexType >::value >, std::enable_if_t< std::is_nothrow_constructible< IndexType, OtherIndexType >::value > > = nullptr> | |
| constexpr | extents (span< OtherIndexType, N > exts) noexcept |
Construct an extents object with the specified list of extents. | |
| template<typename OtherIndexType, constraints< std::enable_if_t< std::is_convertible< OtherIndexType, IndexType >::value >, std::enable_if_t< std::is_nothrow_constructible< IndexType, OtherIndexType >::value > > = nullptr> | |
| constexpr | extents (span< OtherIndexType, rank_dynamic()> exts) noexcept |
Construct an extents object with the specified list of extents. | |
| constexpr auto | extent (rank_type dimension) const noexcept -> index_type |
| Get the actual extent for the given dimension, returning the extent supplied to the constructor for dynamic extents. | |
Friends | |
| template<typename OtherIndexType, std::size_t... OtherExtents> | |
| constexpr auto | operator!= (extents const &lhs, extents< OtherIndexType, OtherExtents... > const &rhs) noexcept -> bool |
| Compare two extents objects to see if they have different values. | |
| template<typename OtherIndexType, std::size_t... OtherExtents, constraints< std::enable_if_t< rank() !=sizeof...(OtherExtents)> > = nullptr> | |
| constexpr auto | operator== (extents const &, extents< OtherIndexType, OtherExtents... > const &) noexcept -> bool |
| Compare two extents objects with different ranks to see if they have the same values. | |
| template<typename OtherIndexType, std::size_t... OtherExtents, constraints< std::enable_if_t< rank()==sizeof...(OtherExtents)> > = nullptr> | |
| constexpr auto | operator== (extents const &lhs, extents< OtherIndexType, OtherExtents... > const &rhs) noexcept -> bool |
| Compare two extents objects with the same rank to see if they have the same values. | |
represents a multidimensional index space
| IndexType | the index type |
| Extents | the static extents of each dimension |
| using arene::base::extents< IndexType, Extents >::index_type = IndexType |
The specified index type for the extents.
| using arene::base::extents< IndexType, Extents >::rank_type = typename extent_sequence_type::rank_type |
The type of the rank.
| using arene::base::extents< IndexType, Extents >::size_type = std::make_unsigned_t<index_type> |
An unsigned type for representing an index into a dimension.
|
inlineexplicitconstexprnoexcept |
Construct an extents object with the specified list of extents.
| OtherIndexType | The type of the supplied extents |
| N | The number of supplied extents |
| exts | The supplied extents |
OtherIndexType must be convertible to IndexType without throwing exts must be representable as a non-negative value of IndexType N , must be equal to rank() Extents, if the corresponding value is not dynamic_extent, then the provided value, when converted to IndexType, must be the same as the specified value in Extents
|
inlineconstexprnoexcept |
Construct an extents object with the specified list of extents.
| OtherIndexType | The type of the supplied extents |
| exts | The supplied extents |
OtherIndexType must be convertible to IndexType without throwing rank() or dynamic_rank() exts must be representable as a non-negative value of IndexType
|
inlineconstexprnoexcept |
Construct an extents object with the specified list of extents.
| OtherIndexType | The type of the supplied extents |
| exts | The supplied extents |
OtherIndexType must be convertible to IndexType without throwing rank() or dynamic_rank() exts must be representable as a non-negative value of IndexType Extents, if the corresponding value is not dynamic_extent, then the provided value, when converted to IndexType, must be the same as the specified value in Extents
|
inlineexplicitconstexprnoexcept |
Construct an extents object with the specified list of extents.
| OtherIndexType | The type of the supplied extents |
| N | The number of supplied extents |
| exts | The supplied extents |
OtherIndexType must be convertible to IndexType without throwing N , must be equal to rank() exts must be representable as a non-negative value of IndexType Extents, if the corresponding value is not dynamic_extent, then the provided value, when converted to IndexType, must be the same as the specified value in Extents
|
inlineexplicitconstexprnoexcept |
Construct an extents object with the specified list of dynamic extents.
| OtherIndexTypes | The types of the supplied dynamic extents |
| exts | The supplied dynamic extents |
OtherIndexTypes must be convertible to IndexType without throwing exts must be representable as a non-negative value of IndexType
|
inlineexplicitconstexprnoexcept |
Construct an extents object with the specified list of extents.
| OtherIndexTypes | The types of the supplied extents |
| exts | The supplied extents |
OtherIndexTypes must be convertible to IndexType without throwing exts must be representable as a non-negative value of IndexType Extents, if the corresponding value is not dynamic_extent, then the provided value, when converted to IndexType, must be the same as the specified value in Extents
|
inlineconstexprnoexcept |
Construct an extents object with the same set of extents as the source extents object.
| OtherIndexType | The index type of the supplied extents |
| OtherExtents | The supplied extents |
| source_extents | The extents object to copy the extents from |
IndexType for dynamic extents
|
inlineexplicitconstexprnoexcept |
Construct an extents object with the same set of extents as the source extents object.
| OtherIndexType | The index type of the supplied extents |
| OtherExtents | The supplied extents |
| source_extents | The extents object to copy the extents from |
IndexType for dynamic extents
|
inlineconstexprnoexcept |
Construct an extents object with all the dynamic extents set to zero, if any.
|
inlineconstexprnoexcept |
Get the actual extent for the given dimension, returning the extent supplied to the constructor for dynamic extents.
| dimension | The index of the dimension for which to get the extent |
|
friend |
Compare two extents objects to see if they have different values.
| OtherIndexType | The index type of the other extents type |
| OtherExtents | The extents of the other extents type |
| lhs | The first extents object to compare |
| rhs | The second extents object to compare |
lhs==rhs
|
friend |
Compare two extents objects with different ranks to see if they have the same values.
| OtherIndexType | The index type of the other extents type |
| OtherExtents | The extents of the other extents type |
false.
|
friend |
Compare two extents objects with the same rank to see if they have the same values.
| OtherIndexType | The index type of the other extents type |
| OtherExtents | The extents of the other extents type |
| lhs | The first extents object to compare |
| rhs | The second extents object to compare |
true if lhs.extent(index) is equal to rhs.extent(index) for all index values in [0,lhs.rank()) otherwise false.