std::experimental::optional<T>:: swap
|
void
swap
(
optional
&
other
)
noexcept
(
/* see below */
)
;
|
(библиотека fundamentals TS) | |
Обменивает содержимое с содержимым other .
- Если ни * this , ни other не содержат значения, функция не имеет эффекта.
-
Если только один из
*
this
и
other
содержит значение (назовем этот объект
in, а другойun), содержащееся значениеunпрямо инициализируется из std :: move ( * in ) , после чего следует уничтожение содержащегося значенияinкак если бы с помощью in. val - > T :: ~T ( ) . После этого вызоваinне содержит значения, аunсодержит значение.
-
Если и
*
this
и
other
содержат значения, содержащиеся значения обмениваются путем вызова
using
std::
swap
;
swap
(
**
this,
*
other
)
.
Tlvalue должны удовлетворять требованиям Swappable .
Содержание |
Параметры
| other | - |
объект
optional
, с которым требуется обменять содержимое
|
Возвращаемое значение
(нет)
Исключения
noexcept ( swap ( std:: declval < T & > ( ) , std:: declval < T & > ( ) ) ) )
В случае возникновения исключения состояния содержащихся значений
*
this
и
other
определяются гарантиями безопасности исключений функции
swap
для типа
T
или move-конструктора
T
, в зависимости от того, что вызывается. Как для
*
this
, так и для
other
, если объект содержал значение, он остается содержащим значение, и наоборот.
Смотрите также
|
специализирует алгоритм
std::swap
(функция) |