home | help
std::experi...tional::swap(3)  C++ Standard Libary std::experi...tional::swap(3)

NAME
     std::experimental::optional::swap - std::experimental::optional::swap

Synopsis
	void swap( optional& other ) noexcept(/* see below */);  (library funda-
     mentals TS)

	Swaps the contents with those of other.

	  *  If neither *this nor other contain a value, the function has no ef-
     fect.
	  * If only one of *this and other contains a value (let's call this ob-
     ject in and
	    the other un), the contained value of un is direct-initialized from
	    std::move(*in), followed by destruction of the contained value of in
     as if by
	    in.val->T::~T(). After this call, in does not  contain  a  value  un
     contains a
	    value.
	  * If both *this and other contain values, the contained values are ex-
     changed by
	    calling  using  std::swap; swap(**this, *other). T lvalues must sat-
     isfy Swappable.

Parameters
	other - the optional object to exchange the contents with

Return value
	(none)

Exceptions
	noexcept specification:
	noexcept(std::is_nothrow_move_constructible<T>::value &&
		   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
	std::swap(std::experimental::optional) specializes the	std::swap  algo-
     rithm
					       (function)

Categories:
	  * Noindexed pages
	  * conditionally noexcept

http://cppreference.com 	   2024.06.10	   std::experi...tional::swap(3)

home | help