Espacios de nombres
Variantes
Acciones

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)
operator[]
(C++20)
 
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 derivedstatic_cast<D&>(*this). Es equivalente a returnranges::begin(derived)[n];.
2) Igual que (1), excepto que derived es static_cast<const D&>(*this).

Contenido

[editar]Parámetros

n - La posición del elemento a devolver.

[editar]Valor de retorno

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

[editar]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 la implementación por defecto, 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 operator[] heredada está disponible para std::ranges::empty_view, pero llamarla siempre resulta en comportamiento no definido.

[editar]Ejemplo

close