std::optional<T>::value
ja.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 例外を送出します。
パラメータ
(なし)
戻り値
格納された値への参照。
例外
std::bad_optional_access がスローされる( * this が値を保持していない場合)。
注記
間接参照演算子
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へのチェック付きアクセスを示す例外
(クラス) |