std::experimental::optional<T>:: swap
|
void
swap
(
optional
&
other
)
noexcept
(
/* siehe unten */
)
;
|
(Library Fundamentals TS) | |
Tauscht die Inhalte mit denen von other .
- Wenn weder * this noch other einen Wert enthalten, hat die Funktion keine Auswirkung.
-
Wenn nur eines von
*
this
und
other
einen Wert enthält (nennen wir dieses Objekt
inund das andereun), wird der enthaltene Wert vonunaus std :: move ( * in ) direkt initialisiert , gefolgt von der Zerstörung des enthaltenen Werts voninwie durch in. val - > T :: ~T ( ) . Nach diesem Aufruf enthältinkeinen Wert undunenthält einen Wert.
-
Wenn sowohl
*
this
als auch
other
Werte enthalten, werden die enthaltenen Werte durch Aufruf von
using
std::
swap
;
swap
(
**
this,
*
other
)
ausgetauscht.
T-Lvalues müssen Swappable erfüllen.
Inhaltsverzeichnis |
Parameter
| other | - |
das
optional
Objekt, mit dem die Inhalte ausgetauscht werden sollen
|
Rückgabewert
(keine)
Exceptions
noexcept ( swap ( std:: declval < T & > ( ) , std:: declval < T & > ( ) ) ) )
Im Falle einer ausgelösten Ausnahme werden die Zustände der enthaltenen Werte von
*
this
und
other
durch die Exception-Safety-Garantien von
swap
des Typs
T
oder
T
's Move-Konstruktor bestimmt, je nachdem welcher aufgerufen wird. Für sowohl
*
this
als auch
other
gilt: Wenn das Objekt einen Wert enthielt, bleibt es mit einem Wert enthalten, und umgekehrt.
Siehe auch
|
spezialisiert den
std::swap
Algorithmus
(Funktion) |