名稱空間
變體
操作

std::optional<T>::value

來自 cppreference.com
< cpp‎ | 工具‎ | optional
 
 
 
 
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

[編輯] 參閱

如果可用,返回包含的值,否則返回另一個值
(公開成員函式) [編輯]
訪問所包含的值
(公開成員函式) [編輯]
當檢查式訪問不包含值的 optional 時丟擲的異常
(類) [編輯]