std:: swappable, std:: swappable_with
|
Défini dans l'en-tête
<concepts>
|
||
|
template
<
class
T
>
concept swappable
=
|
(1) | (depuis C++20) |
|
template
<
class
T,
class
U
>
concept swappable_with
=
|
(2) | (depuis C++20) |
Le concept
swappable<T>
spécifie que les lvalues de type
T
sont échangeables.
Le concept
swappable_with<T, U>
spécifie que les expressions du type et de la catégorie de valeur encodées par
T
et
U
sont interchangeables entre elles.
swappable_with<T, U>
n'est satisfait que si un appel à
ranges::
swap
(
t, u
)
échange la valeur de
t
et
u
, c'est-à-dire, étant donnés des objets distincts
t2
égaux à
t
et
u2
égaux à
u
, après l'évaluation soit de
ranges::
swap
(
t, u
)
soit de
ranges::
swap
(
u, t
)
,
t2
est égal à
u
et
u2
est égal à
t
.
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).
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
-
18.4.9 Concept
swappable[concept.swappable]
-
18.4.9 Concept
- Norme C++20 (ISO/IEC 14882:2020) :
-
-
18.4.9 Concept
swappable[concept.swappable]
-
18.4.9 Concept