std::optional<T>:: value
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::optional
| Member functions | ||||
| Observers | ||||
|
optional::value
|
||||
| Iterators | ||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Monadic operations | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| Modifiers | ||||
| Non-member functions | ||||
| Deduction guides | ||||
| Helper classes | ||||
| Helper objects | ||||
|
constexpr
T
&
value
(
)
&
;
constexpr const T & value ( ) const & ; |
(1) | (自 C++17 起) |
|
constexpr
T
&&
value
(
)
&&
;
constexpr const T && value ( ) const && ; |
(2) | (自 C++17 起) |
如果 * this 包含值,则返回所含值的引用。
否则,抛出 std::bad_optional_access 异常。
目录 |
参数
(无)
返回值
对所含值的引用。
异常
若 * this 不包含值,则抛出 std::bad_optional_access 。
注释
解引用操作符
operator*()
不会检查该 optional 是否包含值,这可能比
value()
更高效。
示例
运行此代码
#include <iostream> #include <optional> int main() { std::optional<int> opt = {}; try { [[maybe_unused]] int n = opt.value(); } catch(const std::bad_optional_access& e) { std::cout << e.what() << '\n'; } try { opt.value() = 42; } catch(const std::bad_optional_access& e) { std::cout << e.what() << '\n'; } opt = 43; std::cout << *opt << '\n'; opt.value() = 44; std::cout << opt.value() << '\n'; }
输出:
bad optional access bad optional access 43 44
参见
|
若存在被容纳值则返回之,否则返回另一个值
(公开成员函数) |
|
|
访问被容纳的值
(公开成员函数) |
|
|
(C++17)
|
指示对被容纳值进行有检查访问而 optional 不包含值时抛出的异常
(类) |