std::swappable, std::swappable_with
| Definiert in der Header-Datei <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 der durch T und U kodierten Typen und Wertkategorien miteinander austauschbar sind. swappable_with<T, U> ist nur dann erfüllt, wenn ein Aufruf von ranges::swap(t, u) den Wert von t und u vertauscht, d.h., gegeben zwei verschiedene Objekte t2 gleich t und u2 gleich u, nach der Auswertung von entweder ranges::swap(t, u) oder ranges::swap(u, t), gilt t2 ist gleich u und u2 ist gleich t.
[bearbeiten] Gleichheitserhaltung
Ausdrücke, die in requires-Ausdrücken der Standardbibliothekskonzepte deklariert sind, müssen gleichheitserhaltend sein (sofern nicht anders angegeben).
[bearbeiten] 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