std::experimental::optional<T>::value
来自cppreference.com
<tbody>
</tbody>
constexpr T& value() &; constexpr const T & value() const &; |
(1) | (库基础 TS) |
constexpr T&& value() &&; constexpr const T&& value() const &&; |
(2) | (库基础 TS) |
Returns the contained value.
1) 等价于
return bool(*this) ? *val : throw bad_optional_access();。2) 等价于
return bool(*this) ? std::move(*val) : throw bad_optional_access();。参数
(无)
返回值
到所含值的引用。
异常
如果 *this 不包含值则抛出 std::experimental::bad_optional_access。
注解
解引用运算符 operator*() 并不检查 optional 是否含有值,这比 value() 更高效。
示例
运行此代码
#include <experimental/optional>
#include <iostream>
int main()
{
std::experimental::optional<int> opt = {};
try
{
int n = opt.value();
}
catch (const std::logic_error& e)
{
std::cout << e.what() << '\n';
}
}
可能的输出:
optional<T>::value: not engaged
参阅
| 如果有则返回所含值,否则返回另一个值 (公开成员函数) | |
| 访问所含值 (公开成员函数) | |
(库基础 TS) |
指示进行了到不含值的 optional 的有检查访问的异常 (类) |