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

std::variant::valueless_by_exception

constexpr bool valueless_by_exception() const;

(since C++17)

回报false当且仅当变体持有一个值。

例外

noexcept规格:

noexcept

注记

在下列情况下,变体可能变得毫无价值:

  • %28有保证的%29在从临时的复制分配
  • 中包含的值的移动初始化期间抛出异常。移动分配
  • %28%29在类型更改期间初始化包含的值时引发异常。赋值
  • %28%29在类型更改期间初始化包含的值时引发异常。座落

由于从来不允许变量分配动态内存,因此在这种情况下不能保留以前的值。

这甚至适用于非类类型的变体:

二次

代码语言:javascript
复制
struct S {
    operator int() { throw 42; }
};
variant<float, int> v{12.f}; // OK
v.emplace<1>(S()); // v may be valueless

二次

由于异常而没有价值的变体被视为处于无效状态:指数回报变体[医]非营利组织,,,弄到和参观抛出坏[医]变体[医]存取...

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

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

扫码关注腾讯云开发者

领取腾讯云代金券