首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::variant::swap

void swap( variant& rhs ) noexcept(/* see below */);

(1)

(since C++17)

掉期二variant物品。

  • 如果两者都是*thisrhs例外而毫无价值,什么也不做
  • 否则,如果两者兼而有之*thisrhs保持同样的选择,呼叫swap(std::get<i>(*this), std:get<i>(rhs))何地iindex()如果抛出异常,则值的状态取决于调用的交换函数的异常安全性。
  • 否则,交换rhs*this如果引发异常,则*thisrhs取决于变量%27s移动构造函数的异常安全。

除非类型为lvalue,否则行为是未定义的。T_iSwappablestd::is_move_constructible_v<T_i>true为所有人T_iTypes......

参数

rhs

-

a variant object to swap with

返回值

%280%29

例外

如果this->index() == rhs.index(),则可能引发任何异常。swap(std::get<i>(*this), std::get<i>(rhs))我是索引%28%29。

否则,可能引发当前持有的选项的移动构造函数引发的任何异常。*thisrhs...

noexcept规格:

noexcept(((std::is_nothrow_move_constructible_v<Types>&&

std::is_nothrow_swappable_v<Types>)&& ...))

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券