std::experimental::optional<T>:: swap
void
swap
(
optional
&
other
)
noexcept
(
/* see below */
)
;
|
(library fundamentals TS) | |
Swaps the contents with those of other .
- If neither * this nor other contain a value, the function has no effect.
-
If only one of
*
this
and
other
contains a value (let's call this object
in
and the otherun
), the contained value ofun
is direct-initialized from std :: move ( * in ) , followed by destruction of the contained value ofin
as if by in. val - > T :: ~T ( ) . After this call,in
does not contain a valueun
contains a value.
-
If both
*
this
and
other
contain values, the contained values are exchanged by calling
using
std::
swap
;
swap
(
**
this,
*
other
)
.
T
lvalues must satisfy Swappable .
Parameters
other | - |
the
optional
object to exchange the contents with
|
Return value
(none)
Exceptions
noexcept ( swap ( std:: declval < T & > ( ) , std:: declval < T & > ( ) ) ) )
In the case of thrown exception, the states of the contained values of
*
this
and
other
are determined by the exception safety guarantees of
swap
of type
T
or
T
's move constructor, whichever is called. For both
*
this
and
other
, if the object contained a value, it is left containing a value, and the other way round.
See also
specializes the
std::swap
algorithm
(function) |