Espacios de nombres
Variantes

std::ranges::view_interface<D>::operator[]

De cppreference.com
 
 
Biblioteca de rangos
Adaptadores de rangos
 
std::ranges::view_interface
Funciones miembro
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
<tbody> </tbody>
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 por defecto de la función miembro operator[] obtiene el elemento en el desplazamiento especificado relativo al iterador al comienzo, reutilizando operator[] del tipo iterador.

1) Sea derived static_cast<D&>(*this). Es equivalente a return ranges::begin(derived)[n];.
2) Igual que (1), excepto que derived es static_cast<const D&>(*this).

Parámetros

n - La posición del elemento a devolver.

Valor de retorno

El elemento en el desplazamiento n relativo al iterador al comienzo.

Notas

En C++20, ningún tipo derivado de ranges::view_interface en la biblioteca estándar proporciona su propia función miembro operator[].

Sin embargo, los siguientes tipos derivados no pueden usar la implementación por defecto, ya que nunca satisfacen random_access_range:

  • ranges::basic_istream_view
  • std::ranges::filter_view
  • ranges::join_view
  • ranges::lazy_split_view
  • ranges::split_view

La función miembro operator[] heredada está disponible para std::ranges::empty_view, pero llamarla siempre resulta en comportamiento no definido.

Ejemplo