Namespaces
Variants

std::experimental::optional<T>:: swap

From cppreference.net
void swap ( optional & other ) noexcept ( /* ver más abajo */ ) ;
(biblioteca fundamentals TS)

Intercambia el contenido con el de other .

  • Si ni * this ni other contienen un valor, la función no tiene efecto.
  • Si solo uno de * this y other contiene un valor (llamemos a este objeto in y al otro un ), el valor contenido de un es inicializado directamente desde std :: move ( * in ) , seguido por la destrucción del valor contenido de in como si fuera mediante in. val - > T :: ~T ( ) . Después de esta llamada, in no contiene un valor y un contiene un valor.
  • Si tanto * this como other contienen valores, los valores contenidos se intercambian llamando a using std:: swap ; swap ( ** this, * other ) . Los valores-l T deben satisfacer Swappable .

Contenidos

Parámetros

otro - el objeto optional con el cual intercambiar los contenidos

Valor de retorno

(ninguno)

Excepciones

noexcept especificación:
noexcept ( std:: is_nothrow_move_constructible < T > :: value &&
noexcept ( swap ( std:: declval < T & > ( ) , std:: declval < T & > ( ) ) ) )

En caso de una excepción lanzada, los estados de los valores contenidos de * this y other están determinados por las garantías de seguridad de excepciones de swap del tipo T o del constructor de movimiento de T , según cuál sea llamado. Tanto para * this como para other , si el objeto contenía un valor, permanece conteniendo un valor, y viceversa.

Véase también

especializa el algoritmo std::swap
(función)