Namespaces
Variants

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

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

constexpr reference operator [ ]

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

constexpr reference operator [ ]

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

Devuelve una referencia al indices th elemento del mdspan.

1) Equivalente a return acc_  . access ( ptr_ , map_  ( static_cast < index_type > ( std :: move ( indices ) ) ... ) ) ; .
Esta sobrecarga participa en la resolución de sobrecarga solo si todos los siguientes valores son true :

Si extents_type :: index-cast  ( std :: move ( indices ) ) no es un índice multidimensional en extents ( ) , el comportamiento es indefinido.

(hasta C++26)

Si extents_type :: index-cast  ( std :: move ( indices ) ) no es un índice multidimensional en extents ( ) :

  • Si la implementación está reforzada , ocurre una violación de contrato . Además, si el manejador de violación de contrato retorna bajo semántica de evaluación "observar", el comportamiento es indefinido.
  • Si la implementación no está reforzada, el comportamiento es indefinido.
(desde C++26)
2,3) Sea P un paquete de parámetros tal que std:: is_same_v < std:: make_index_sequence < rank ( ) > ,
std:: index_sequence < P... >>
sea true , equivalente a return operator [ ] ( extents_type :: index-cast  ( std:: as_const ( indices [ P ] ) ) ... ) ; .
Esta sobrecarga participa en la resolución de sobrecarga solo si todos los siguientes valores son true :

Contenidos

Parámetros

indices - los índices del elemento a acceder

Valor de retorno

Una referencia al elemento.

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3974 C++23 las sobrecargas (2,3) no aplicaban extents_type:: index-cast aplican

Véase también