Namespaces
Variants

std::mdspan<T,Extents,LayoutPolicy,AccessorPolicy>:: operator[]

From cppreference.net
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 indices th element of the mdspan.

1) Equivalent to return acc_  . access ( ptr_ , map_  ( static_cast < index_type > ( std :: move ( indices ) ) ... ) ) ; .
This overload participates in overload resolution only if all following values are true :

If extents_type :: index-cast  ( std :: move ( indices ) ) is not a multidimensional index in extents ( ) , the behavior is undefined.

(until C++26)

If extents_type :: index-cast  ( std :: move ( indices ) ) is not a multidimensional index in extents ( ) :

  • If the implementation is hardened , a contract violation occurs. Moreover, if the contract-violation handler returns under “observe” evaluation semantic, the behavior is undefined.
  • If the implementation is not hardened, the behavior is undefined.
(since C++26)
2,3) Let P be a parameter pack such that std:: is_same_v < std:: make_index_sequence < rank ( ) > ,
std:: index_sequence < P... >>
is true , equivalent to return operator [ ] ( extents_type :: index-cast  ( std:: as_const ( indices [ P ] ) ) ... ) ; .
This overload participates in overload resolution only if all following values are true :

Contents

Parameters

indices - the indices of the element to access

Return value

A reference to the element.

Example

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 3974 C++23 overloads (2,3) did not apply extents_type:: index-cast applies

See also