std:: sized_sentinel_for, std:: disable_sized_sentinel_for
|
Défini dans l'en-tête
<iterator>
|
||
|
template
<
class
S,
class
I
>
concept sized_sentinel_for
=
|
(1) | (depuis C++20) |
|
template
<
class
S,
class
I
>
inline constexpr bool disable_sized_sentinel_for = false ; |
(2) | (depuis C++20) |
sized_sentinel_for
spécifie qu'un objet du type d'itérateur
I
et un objet du type sentinelle
S
peuvent être soustraits pour calculer la distance entre eux en temps constant.
disable_sized_sentinel_for
peut être utilisée pour empêcher que les itérateurs et sentinelles qui peuvent être soustraits mais ne modélisent pas réellement
sized_sentinel_for
ne satisfassent le concept.
disable_sized_sentinel_for
pour un type d'objet non-tableau sans qualificatif cv
S
et
I
, à condition qu'au moins l'un d'entre eux soit un
type défini par le programme
. De telles spécialisations sont utilisables dans les
expressions constantes
et ont le type
const
bool
.
Table des matières |
Exigences sémantiques
Soit
i
un itérateur de type
I
, et
s
une sentinelle de type
S
tels que
[
i
,
s
)
dénote un intervalle. Soit
n
le plus petit nombre d'applications de
++
i
nécessaires pour que
bool
(
i
==
s
)
soit
true
.
I
et
S
modélisent
sized_sentinel_for<S, I>
seulement si toutes les conditions suivantes sont satisfaites :
- Si n est représentable par std:: iter_difference_t < I > , alors s - i est bien défini et égal à n .
- Si - n est représentable par std:: iter_difference_t < I > , alors i - s est bien défini et égal à - n .
Préservation de l'égalité
Les expressions déclarées dans les requires expressions des concepts de la bibliothèque standard doivent être equality-preserving (sauf indication contraire).
Variations d'expressions implicites
Une requires expression qui utilise une expression non modifiante pour un opérande constant lvalue requiert également les variations d'expression implicites .
Voir aussi
|
(C++20)
|
spécifie qu'un range connaît sa taille en temps constant
(concept) |
|
(C++20)
|
retourne un entier égal à la taille d'un range
(customization point object) |