On this page
std::swappable, std::swappable_with
Defined in header <concepts> |
||
|---|---|---|
|
(1) | (since C++20) |
|
(2) | (since C++20) |
The concept swappable<T> specifies that lvalues of type T are swappable.
The concept swappable_with<T, U> specifies that expressions of the type and value category encoded by T and U are swappable with each other. swappable_with<T, U> is satisfied only if a call to ranges::swap(t, u) exchanges the value of t and u, that is, given distinct objects t2 equal to t and u2 equal to u, after evaluating either ranges::swap(t, u) or ranges::swap(u, t), t2 is equal to u and u2 is equal to t.
Equality preservation
Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/concepts/swappable