std::experimental::optional<T>:: value
From cppreference.net
<
cpp
|
experimental
|
optional
|
constexpr
T
&
value
(
)
&
;
constexpr const T & value ( ) const & ; |
(1) | (库基础技术规范) |
|
constexpr
T
&&
value
(
)
&&
;
constexpr const T && value ( ) const && ; |
(2) | (库基础技术规范) |
返回所包含的值。
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*()
不会检查此可选对象是否包含值,这可能比
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
参见
|
若包含值则返回该值,否则返回另一值
(公开成员函数) |
|
|
访问所含值
(公开成员函数) |
|
|
(library fundamentals TS)
|
指示对不包含值的 optional 进行受检访问时引发的异常
(类) |