Namensräume
Varianten
Aktionen

std::experimental::propagate_const<T>::swap

Von cppreference.com
 
 
 
 
 
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:  
noexcept(noexcept(swap(t_, pt.t_)))
Die Suche nach dem Bezeichner 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:  
(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