Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
(1) (desde C++20)
constexpr auto 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 predeterminada de la función miembro size() obtiene el tamaño del rango calculando la diferencia entre el iterador centinela y el iterador inicial.

Contenidos

Valor de retorno

1) to-unsigned-like  ( ranges:: end ( static_cast < D & > ( this ) ) -
ranges:: begin ( static_cast < D & > ( this ) ) )
.
2) to-unsigned-like  ( ranges:: end ( static_cast < const D & > ( this ) ) -
ranges:: begin ( static_cast < const D & > ( this ) ) )
.

Notas

Los siguientes tipos derivados pueden utilizar la implementación predeterminada de size() :

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

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3646 C++20 las implementaciones por defecto de las funciones size devolvían un tipo con signo devuelven tipo sin signo

Véase también

(C++17) (C++20)
devuelve el tamaño de un contenedor o array
(plantilla de función)
devuelve un entero igual al tamaño de un rango
(objeto de punto de personalización)
devuelve un entero con signo igual al tamaño de un rango
(objeto de punto de personalización)