std::variant::swap
STD::变体::SWAP
void swap( variant& rhs ) noexcept(/* see below */ | (1) | (since C++17) |
---|
掉期二variant
物品。
- 如果两者都是
*this
和rhs
例外而毫无价值,什么也不做
- 否则,如果两者兼而有之*this和rhs保持同样的选择,呼叫swap(std::get<i>(*this), std:get<i>(rhs))何地i是index()如果抛出异常,则值的状态取决于调用的交换函数的异常安全性。
- 否则,交换
rhs
和*this
如果引发异常,则*this
和rhs
取决于变量%27s移动构造函数的异常安全。
除非类型为lvalue,否则行为是未定义的。T_i是Swappable和std::is_move_constructible_v<T_i>是true为所有人T_i在Types......
参数
rhs | - | a variant object to swap with |
---|
返回值
%280%29
例外
如果this->index() == rhs.index(),则可能引发任何异常。swap(std::get<i>(*this), std::get<i>(rhs))我是索引%28%29。
否则,可能引发当前持有的选项的移动构造函数引发的任何异常。*this
和rhs
...
noexcept
规格:
noexcept(((std::is_nothrow_move_constructible_v<Types>&&
std::is_nothrow_swappable_v<Types>)&& ...))
例
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。