std::experimental::optional<T>::value
來自 cppreference.com
< cpp | experimental | optional
constexpr T& value() &; constexpr const T & value() const &; |
(1) | (庫基礎 TS) |
constexpr T&& value() &&; constexpr const T&& value() const &&; |
(2) | (庫基礎 TS) |
返回所包含的值。
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
[編輯] 亦參見
如果可用,返回包含的值,否則返回另一個值 (public member function) | |
訪問所包含的值 (public member function) | |
(庫基礎 TS) |
當檢查式訪問不包含值的 optional 時丟擲的異常 (class) |