Namespaces
Variants

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

From cppreference.net
template < class ... OtherIndexTypes >
constexpr reference operator [ ] ( OtherIndexTypes... indices ) const ;
(1) (seit C++23)
template < class OtherIndexType >

constexpr reference operator [ ]

( std:: span < OtherIndexType, rank ( ) > indices ) const ;
(2) (seit C++23)
template < class OtherIndexType >

constexpr reference operator [ ]

( const std:: array < OtherIndexType, rank ( ) > & indices ) const ;
(3) (seit C++23)

Gibt eine Referenz auf das indices te Element des mdspan zurück.

1) Entspricht return acc_  . access ( ptr_ , map_  ( static_cast < index_type > ( std :: move ( indices ) ) ... ) ) ; .
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn alle folgenden Werte true sind:

Wenn extents_type :: index-cast  ( std :: move ( indices ) ) kein mehrdimensionaler Index in extents ( ) ist, ist das Verhalten undefiniert.

(bis C++26)

Wenn extents_type :: index-cast  ( std :: move ( indices ) ) kein mehrdimensionaler Index in extents ( ) ist:

  • Wenn die Implementierung gehärtet ist, tritt eine Vertragsverletzung auf. Wenn der Vertragsverletzungs-Handler unter "observe"-Auswertungssemantik zurückkehrt, ist das Verhalten zudem undefiniert.
  • Wenn die Implementierung nicht gehärtet ist, ist das Verhalten undefiniert.
(seit C++26)
2,3) Sei P ein Parameter-Pack, sodass std:: is_same_v < std:: make_index_sequence < rank ( ) > ,
std:: index_sequence < P... >>
gleich true ist, äquivalent zu return operator [ ] ( extents_type :: index-cast  ( std:: as_const ( indices [ P ] ) ) ... ) ; .
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn alle folgenden Werte true sind:

Inhaltsverzeichnis

Parameter

indices - die Indizes des Elements, auf das zugegriffen werden soll

Rückgabewert

Eine Referenz auf das Element.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 3974 C++23 Überladungen (2,3) wandten extents_type:: index-cast nicht an wendet an

Siehe auch