std::optional<T>:: value
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::optional
| Member functions | ||||
| Observers | ||||
|
optional::value
|
||||
| Iterators | ||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Monadic operations | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
| Modifiers | ||||
| Non-member functions | ||||
| Deduction guides | ||||
| Helper classes | ||||
| Helper objects | ||||
|
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へのチェック付きアクセスを示す例外
(クラス) |