Espacios de nombres
Variantes
Acciones

std::ranges::view_interface<D>::size

De cppreference.com
 
 
Biblioteca de rangos
Adaptadores de rangos
 
std::ranges::view_interface
Funciones miembro
(C++20)
(C++20)
size
(C++20)
(C++20)
(C++20)
(C++20)
 
constexprauto size() requires ranges::forward_range<D>&&

    std::sized_sentinel_for<ranges::sentinel_t<D>,

                            ranges::iterator_t<D>>;
(1) (desde C++20)
constexprauto size()const requires ranges::forward_range<const D>&&

    std::sized_sentinel_for<ranges::sentinel_t<const D>,

                            ranges::iterator_t<const D>>;
(2) (desde C++20)

La implementación por defecto de la función miembro size() obtiene el tamaño del rango calculando la diferencia entre el centinela y el iterador al comienzo.

1) Sea derivedstatic_cast<D&>(*this). Es equivalente a returnranges::end(derived)-ranges::begin(derived);.
2) Igual que (1), excepto que derived es static_cast<const D&>(*this).

Contenido

[editar]Parámetros

(Ninguno)

[editar]Valor de retorno

La diferencia entre el centinela y el iterador al comienzo del valor del tipo derivado.

[editar]Notas

Los siguientes tipos derivados pueden usar la implementación por defecto de size():

  • std::ranges::drop_while_view

Los siguientes tipos se derivan de std::ranges::view_interface y no declaran su propia función miembro size(), pero no pueden usar la implementación por defecto, ya que sus tipos iterador y centinela nunca satisfacen sized_sentinel_for:

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

[editar]Véase también

(C++17)(C++20)
Devuelve el tamaño de un contenedor o un array.
(plantilla de función)[editar]
Obtiene el tamaño de un rango cuyo tamaño puede calcularse en tiempo constante.
(objeto punto de personalización)[editar]
Obtiene el tamaño de un rango cuyo tamaño puede calcularse en tiempo constante y lo convierte a un entero con signo.
(objeto punto de personalización)[editar]
close