std::optional::value
STD::可选::Value
constexpr T& value() &; constexpr const T & value() const &; | (1) | (since C++17) |
---|---|---|
constexpr T&& value() &&; constexpr const T&& value() const &&; | (2) | (since C++17) |
如果*this
包含值,则返回对包含的值的引用。
否则,抛出一个std::bad_optional_access
例外。
参数
%280%29
返回值
对包含的值的引用。
例外
std::bad_optional_access
如果*this
不包含值。
注记
去引用算子operator*()
不检查此可选选项是否包含一个值,该值可能比value()
...
例
二次
#include <optional>
#include <iostream>
int main()
{
std::optional<int> opt = {};
try {
int n = opt.value(
} catch(const std::logic_error& e) {
std::cout << e.what() << '\n';
}
}
二次
可能的产出:
二次
optional<T>::value: not engaged
二次
另见
value_or | returns the contained value if available, another value otherwise (public member function) |
---|---|
operator->operator* | accesses the contained value (public member function) |
bad_optional_access (C++17) | exception indicating checked access to an optional that doesn't contain a value (class) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。