std::ranges::view_interface<D>::operator[]
template<ranges::random_access_range R = D>
constexpr decltype(auto) operator[]( ranges::range_difference_t<R> n );
|
(1) | (desde C++20) |
template<ranges::random_access_range R = const D>
constexpr decltype(auto) operator[]( ranges::range_difference_t<R> n ) const;
|
(2) | (desde C++20) |
La implementación predeterminada de la función miembro operator[] obtiene el elemento en el desplazamiento especificado relativo al iterador de inicio, reutilizando el operator[] del tipo de iterador.
derived igual a static_cast<D&>(*this). Equivalente a return ranges::begin(derived)[n];.derived es static_cast<const D&>(*this).Parámetros
| n | - | posición del elemento a retornar |
Valor de retorno
El elemento en el desplazamiento
n
relativo al iterador inicial.
Notas
En C++20, ningún tipo derivado de std::ranges::view_interface en la biblioteca estándar proporciona su propia función miembro operator [ ] .
Sin embargo, los siguientes tipos derivados no pueden usar las implementaciones predeterminadas, ya que nunca satisfacen
random_access_range
:
- std::ranges::basic_istream_view
- std::ranges::filter_view
- std::ranges::join_view
- std::ranges::lazy_split_view
- std::ranges::split_view
La función miembro heredada operator [ ] está disponible para std::ranges::empty_view , pero una llamada a ella siempre resulta en comportamiento indefinido.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |