std::optional<T>::value
从 zh.cppreference.net
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 不包含值时抛出的异常
(类) |