std::mdspan<T,Extents,LayoutPolicy,AccessorPolicy>::operator[]
De cppreference.com
<tbody>
</tbody>
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-ésimo 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 sólo si:
(std::is_convertible_v<OtherIndexTypes, index_type> && ...)estrue,(std::is_nothrow_constructible_v<index_type, OtherIndexTypes> && ...)estrue, ysizeof...(OtherIndexTypes) == rank()estrue.
Sea
I extents_type::index-cast(std::move(indices)). Entonces el comportamiento no está definido si I no es un índice multidimensional en extents(), p. ej., map_(I) < map_.required_span_size() es false.2,3) Sea
P un paquete de parámetros tal que std::is_same_v<make_index_sequence<rank()>, index_sequence<P...>> es true, entonces el operador es equivalente a return operator[](extents_type::index-cast(std::as_const(indices[P]))...);. Esta sobrecarga participa en la resolución de sobrecarga sólo si:
std::is_convertible_v<const OtherIndexType&, index_type>estrue, ystd::is_nothrow_constructible_v<index_type, const OtherIndexType&>estrue.
Parámetros
| indices | - | Los índices del elemento a acceder. |
Valor de retorno
Una referencia al elemento.
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3974 | C++23 | Las sobrecargas (2,3) no aplicaban extents_type::index-cast.
|
Lo aplican. |
Véase también
| Esta sección está incompleta |