indexed_span data access¶
Data access¶
-
constexpr reference indexed_span::at(Index i) const¶
-
constexpr reference indexed_span::operator[](Index i) const¶
Element access.
atis range-checked, and throwsstd::out_of_rangeon error. In case of multidimensional span,operator[]signature isstd::tuple<Index1, Index2, ...>whereasatsignature isat(Index1, Index2, ...). If usingC++23,operator[]is also available as[Index1, Index2, ...]`- Parameters
i – The index. Anything that is implicitly convertible to the Index can be used.
- Returns
A reference to the item at index i
-
constexpr pointer indexed_span::data() const¶
Gives access to the underlying storage.
- Returns
A pointer to the start of the sequence of elements
-
constexpr reference indexed_span::front() const¶
- Returns
The first element of the span. This is the same as
*begin().
-
constexpr reference indexed_span::back() const¶
- Returns
The last element of the span. This is the same as
*rbegin().
Subrank access¶
-
constexpr auto indexed_span::slice(oneDimensionIndex index) const noexcept¶
-
constexpr auto indexed_span::slice_at(oneDimensionIndex index) const noexcept¶
- Both functions returns a slice of the span, at the given index. For multidimensional
spans of rank
n, it returns anindexed_spanof rankn-1. For single dimension span, it returns the element at the given index.slicedoes not do any bound checking,slice_atthrowsstd::out_of_rangeon error.
- Parameters
index – The index of the slice. It must be an index of the type of the higher-level rank of the indexer.
- Returns
An
indexed_spanof lower rank, a view of the data at indexindex
Note
There is no first/last/subspan methods. They do not fit
well with the concept of custom indexing, because the return type shall
be known at compile time, as it would depend on the parameters.