std:: swappable, std:: swappable_with
|
Definido en el encabezado
<concepts>
|
||
|
template
<
class
T
>
concept swappable
=
|
(1) | (desde C++20) |
|
template
<
class
T,
class
U
>
concept swappable_with
=
|
(2) | (desde C++20) |
El concepto
swappable<T>
especifica que los lvalues de tipo
T
son intercambiables.
El concepto
swappable_with<T, U>
especifica que las expresiones del tipo y categoría de valor codificadas por
T
y
U
son intercambiables entre sí.
swappable_with<T, U>
se satisface solo si una llamada a
ranges::
swap
(
t, u
)
intercambia el valor de
t
y
u
, es decir, dados objetos distintos
t2
igual a
t
y
u2
igual a
u
, después de evaluar ya sea
ranges::
swap
(
t, u
)
o
ranges::
swap
(
u, t
)
,
t2
es igual a
u
y
u2
es igual a
t
.
Preservación de la igualdad
Las expresiones declaradas en las requires expressions de los conceptos de la biblioteca estándar deben ser equality-preserving (excepto cuando se indique lo contrario).
Referencias
- Estándar C++23 (ISO/IEC 14882:2024):
-
-
18.4.9 Concepto
swappable[concept.swappable]
-
18.4.9 Concepto
- Estándar C++20 (ISO/IEC 14882:2020):
-
-
18.4.9 Concepto
swappable[concept.swappable]
-
18.4.9 Concepto