std:: incrementable_traits
|
Défini dans l'en-tête
<iterator>
|
||
|
template
<
class
I
>
struct incrementable_traits { } ; |
(1) | (depuis C++20) |
|
template
<
class
T
>
requires
std::
is_object_v
<
T
>
|
(2) | (depuis C++20) |
|
template
<
class
T
>
struct
incrementable_traits
<
const
T
>
|
(3) | (depuis C++20) |
|
template
<
class
T
>
requires requires
{
typename
T
::
difference_type
;
}
|
(4) | (depuis C++20) |
|
template
<
class
T
>
requires
(
!
requires
{
typename
T
::
difference_type
;
}
)
&&
|
(5) | (depuis C++20) |
Calcule le type de différence associé du type
I
, le cas échéant. Un programme peut spécialiser
incrementable_traits
pour un
type défini par le programme
.
difference_type
.
difference_type
identique à
T::difference_type
.
difference_type
mais qui prennent en charge la soustraction.
difference_type
identique à
std::
make_signed_t
<
decltype
(
std::
declval
<
T
>
(
)
-
std::
declval
<
T
>
(
)
)
>
. La règle des variations d'expressions implicites (voir ci-dessous) s'applique à l'expression
a
-
b
.
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 .
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
(C++20)
|
spécifie qu'un type
semiregular
peut être incrémenté avec les opérateurs de pré-incrémentation et post-incrémentation
(concept) |
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
calcule les types associés d'un itérateur
(alias de modèle) |
|
fournit une interface uniforme pour les propriétés d'un itérateur
(modèle de classe) |