std:: swappable, std:: swappable_with
|
Definiert im Header
<concepts>
|
||
|
template
<
class
T
>
concept swappable
=
|
(1) | (seit C++20) |
|
template
<
class
T,
class
U
>
concept swappable_with
=
|
(2) | (seit C++20) |
Das Konzept
swappable<T>
spezifiziert, dass Lvalues vom Typ
T
austauschbar sind.
Das Konzept
swappable_with<T, U>
spezifiziert, dass Ausdrücke des Typs und der Wertkategorie, die durch
T
und
U
kodiert werden, miteinander austauschbar sind.
swappable_with<T, U>
ist nur dann erfüllt, wenn ein Aufruf von
ranges::
swap
(
t, u
)
die Werte von
t
und
u
austauscht, das heißt, wenn für zwei verschiedene Objekte
t2
gleich
t
und
u2
gleich
u
nach Auswertung von entweder
ranges::
swap
(
t, u
)
oder
ranges::
swap
(
u, t
)
,
t2
gleich
u
und
u2
gleich
t
ist.
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
-
18.4.9 Konzept
swappable[concept.swappable]
-
18.4.9 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.4.9 Konzept
swappable[concept.swappable]
-
18.4.9 Konzept