std::optional<T>::swap

< cpp‎ | utility‎ | optional
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等字符串转换
(C++17)
(C++17)
 
 
void swap( optional& other ) noexcept(/* see below */);
(C++17 起)

other 交换内容。

  • *thisother 均不含值,则函数无效果。
  • *thisother 仅有一个含值(称此对象为 in ,另一者为 un ),则从 std::move(*in) 直接初始化 un 所含值,随后如同通过 in->T::~T() 析构 in 所含值。此调用后, in 不含值; un 含值。

std::is_move_constructible_v<T>false 则程序为谬构。

参数

other - 要交换内容的 optional 对象

返回值

(无)

异常

noexcept 规定:  

在抛异常的情况下, *thisother 所含值的状态由 TswapT 的移动构造函数的异常安全保证确定,取决于所调用者。对于 *thisother ,若对象含值,则令它继续含值,反之亦然。

参阅

特化 std::swap 算法
(函数)