template< class... OtherIndexTypes > constexpr reference operator[]( OtherIndexTypes... indices ) const; | (1) | (since C++23) |
template< class OtherIndexType > constexpr reference operator[]( std::span<OtherIndexType, rank()> indices ) const; | (2) | (since C++23) |
template< class OtherIndexType > constexpr reference operator[]( const std::array<OtherIndexType, rank()>& indices ) const; | (3) | (since C++23) |
Returns a reference to the indicesth element of the mdspan.
return acc_.access(ptr_, map_(static_cast<index_type>(std::move(indices))...));. (std::is_convertible_v<OtherIndexTypes, index_type> && ...) is true, (std::is_nothrow_constructible_v<index_type, OtherIndexTypes> && ...) is true, and sizeof...(OtherIndexTypes) == rank() is true. I be extents_type::index-cast(std::move(indices)). Then the behavior is undefined if I is not a multidimensional index in extents(), i.e., map_(I) < map_.required_span_size() is false.P be a parameter pack such that std::is_same_v<make_index_sequence<rank()>, index_sequence<P...>> is true, then the operator is equivalent to return operator[](std::as_const(indices[P])...);. std::is_convertible_v<const OtherIndexType&, index_type> is true, and std::is_nothrow_constructible_v<index_type, const OtherIndexType&> is true.| indices | - | the indices of the element to access |
A reference to the element.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/mdspan/operator_at