Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

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

Synopsis
	  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  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
       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 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 al-
       gorithm
						 (function)

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::optional::swap&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help