名稱空間
變體
操作

std::experimental::optional<T>::value

來自 cppreference.com
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
 
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) [編輯]