std::experimental::ranges:: distance
|
Défini dans l'en-tête
<experimental/ranges/iterator>
|
||
|
namespace
{
constexpr
/* unspecified */
distance
=
/* unspecified */
;
|
(ranges TS)
(objet de point de personnalisation) |
|
|
Signature d'appel
|
||
|
template
<
Iterator I, Sentinel
<
I
>
S
>
constexpr ranges :: difference_type_t < I > distance ( I first, S last ) ; |
(1) | |
|
template
<
Range R
>
constexpr ranges :: difference_type_t < ranges:: iterator_t < R >> distance ( R && r ) ; |
(2) | |
|
template
<
SizedRange R
>
constexpr ranges :: difference_type_t < ranges:: iterator_t < R >> distance ( R && r ) ; |
(3) | |
Retourne la distance entre first et last , ou entre le début et la fin de la plage r .
[
first
,
last
)
ne dénote pas une plage, alors
I
et
S
doivent être du même type et doivent modéliser
SizedSentinel
, et
[
last
,
first
)
doit dénoter une plage. Sinon, le comportement est indéfini.
L'instanciation des surcharges (2,3) peut être mal formée si l'en-tête <experimental/ranges/range> n'est pas inclus avant le point d'instanciation.
Table des matières |
Objets de point de personnalisation
Le nom
ranges::distance
désigne un
objet de point de personnalisation
, qui est un
objet fonction
d'un type de classe
littéral
Semiregular
(désigné, à des fins d'exposition, comme
DistanceT
). Toutes les instances de
DistanceT
sont égales. Ainsi,
ranges::distance
peut être copié librement et ses copies peuvent être utilisées de manière interchangeable.
Étant donné un ensemble de types
Args...
, si
std::
declval
<
Args
>
(
)
...
satisfont aux exigences pour les arguments de
ranges::distance
ci-dessus,
DistanceT
satisfera
ranges
::
Invocable
<
const
DistanceT, Args...
>
. Sinon, aucun opérateur d'appel de fonction de
DistanceT
ne participe à la résolution de surcharge.
Dans chaque unité de traduction où
ranges::distance
est défini, il fait référence à la même instance de l'objet de point de personnalisation. (Cela signifie qu'il peut être utilisé librement dans des éléments comme les fonctions inline et les modèles de fonction sans violer la
règle de définition unique
.)
Valeur de retour
La distance entre first et last , ou entre le début et la fin de la plage r .
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
renvoie la distance entre deux itérateurs
(modèle de fonction) |
|
|
avance un itérateur d'une distance donnée
(modèle de fonction) |
|
|
incrémente un itérateur
(modèle de fonction) |
|
|
décrémente un itérateur
(modèle de fonction) |
|
|
obtient la taille d'une plage dont la taille peut être calculée en temps constant
(objet de point de personnalisation) |