std::ranges::view_interface<D>:: size
|
constexpr
auto
size
(
)
requires
ranges::
forward_range
<
D
>
&&
std::
sized_sentinel_for
<
ranges::
sentinel_t
<
D
>
,
|
(1) | (desde C++20) |
|
constexpr
auto
size
(
)
const
requires
ranges::
forward_range
<
const
D
>
&&
std::
sized_sentinel_for
<
ranges::
sentinel_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
to-unsigned-like
(
ranges::
end
(
static_cast
<
D
&
>
(
this
)
)
-
ranges::
begin
(
static_cast
<
D
&
>
(
this
)
)
)
.
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
:
- 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
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) |
|
(C++20)
|
devuelve un entero igual al tamaño de un rango
(objeto de punto de personalización) |
|
(C++20)
|
devuelve un entero con signo igual al tamaño de un rango
(objeto de punto de personalización) |