Namespaces
Variants

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

From fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plage
 
 
constexpr auto size() requires ranges::forward_range<D> &&
    std::sized_sentinel_for<ranges::sentinel_t<D>,
                            ranges::iterator_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>,
                            ranges::iterator_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.

Valeur de retour

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 ) ) )
.

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 :

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)
retourne un entier égal à la taille d'une plage
(objet point de personnalisation)
retourne un entier signé égal à la taille d'une plage
(objet point de personnalisation)