std::variant::valueless_by_exception
STD::变体::无价值[医]通过[医]例外
constexpr bool valueless_by_exception() const; | | (since C++17) |
---|
回报false
当且仅当变体持有一个值。
例外
noexcept
规格:
noexcept
注记
在下列情况下,变体可能变得毫无价值:
- %28有保证的%29在从临时的复制分配
- 中包含的值的移动初始化期间抛出异常。移动分配
- %28%29在类型更改期间初始化包含的值时引发异常。赋值
- %28%29在类型更改期间初始化包含的值时引发异常。座落
由于从来不允许变量分配动态内存,因此在这种情况下不能保留以前的值。
这甚至适用于非类类型的变体:
二次
struct S {
operator int() { throw 42; }
};
variant<float, int> v{12.f}; // OK
v.emplace<1>(S() // v may be valueless
二次
由于异常而没有价值的变体被视为处于无效状态:指数回报变体[医]非营利组织,,,弄到和参观抛出坏[医]变体[医]存取...
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。