std::ranges::view_interface<D>:: size
|
constexpr
auto
size
(
)
requires
ranges::
forward_range
<
D
>
&&
std::
sized_sentinel_for
<
ranges::
sentinel_t
<
D
>
,
|
(1) | (depuis C++20) |
|
constexpr
auto
size
(
)
const
requires
ranges::
forward_range
<
const
D
>
&&
std::
sized_sentinel_for
<
ranges::
sentinel_t
<
const
D
>
,
|
(2) | (depuis C++20) |
L'implémentation par défaut de la fonction membre
size()
obtient la taille de la plage en calculant la différence entre le sentinelle et l'itérateur de début.
Table des matières |
Valeur de retour
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
)
)
)
.
Notes
Les types dérivés suivants peuvent utiliser l'implémentation par défaut de
size()
:
Les types suivants sont dérivés de
std::ranges::view_interface
et ne déclarent pas leur propre fonction membre
size()
, mais ils ne peuvent pas utiliser l'implémentation par défaut, car leurs types d'itérateur et de sentinelle ne satisfont jamais
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
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 3646 | C++20 |
les implémentations par défaut des fonctions
size
retournaient un type signé
|
elles retournent un type non signé |
Voir aussi
|
(C++17)
(C++20)
|
retourne la taille d'un conteneur ou d'un tableau
(modèle de fonction) |
|
(C++20)
|
retourne un entier égal à la taille d'une plage
(objet point de personnalisation) |
|
(C++20)
|
retourne un entier signé égal à la taille d'une plage
(objet point de personnalisation) |