std::experimental::propagate_const<T>::swap
Von cppreference.com
< cpp | experimental | propagate const
| constexpr void swap( propagate_const & pt ) noexcept(/* siehe unten */); |
(Library Fundamentals TS v2) | |
Tauscht den umschlossenen Zeiger mit dem von pt. Sei t_ das private Datenmitglied, das das zeigerähnliche Objekt darstellt. Dann ist diese Funktion äquivalent zu swap(t_, pt.t_), wobei die Überladungsauflösung für swap unter std::swap und jeder Deklaration, die durch die üblichen Suchregeln gefunden wird, wie in Swappable beschrieben, durchgeführt wird.
Das Verhalten ist undefiniert, wenn lvalues von T nicht Swappable erfüllen.
[bearbeiten] Parameter
| pt | - | ein anderes propagate_const-Objekt zum Tauschen |
[bearbeiten] Ausnahmen
|
noexcept-Spezifikation: Die Suche nach dem Bezeichner noexcept(noexcept(swap(t_, pt.t_))) swap in der Ausnahmespezifikation findet die oben beschriebenen Überladungen und nicht die Memberfunktion selbst, wodurch die Ausnahmespezifikation äquivalent zu C++17 std::is_nothrow_swappable ist. |
(Library Fundamentals TS v2) |
|
noexcept-Spezifikation:
noexcept(std::is_nothrow_swappable_v<T>) |
(library fundamentals TS v3) |
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3413 | LFTSv2 | die Ausnahmespezifikation war fehlerhaft | wurde wohlgeformt gemacht |