Namespaces
Variants

std::experimental:: optional

From cppreference.net
ヘッダーで定義 <experimental/optional>
template < class T >
class optional ;
(ライブラリ基盤 TS)

クラステンプレート std::experimental::optional オプショナル な値を管理します。つまり、存在する場合と存在しない場合がある値です。

optional の一般的な使用例は、失敗する可能性のある関数の戻り値です。他のアプローチ(例えば std:: pair < T, bool > )とは対照的に、 optional は構築コストが高いオブジェクトを適切に扱い、意図が明示的に表現されるため可読性が高くなります。

任意の時点における optional<T> のインスタンスは、 値を含む か、または 値を含まない かのいずれかの状態にあります。

optional<T> 値を保持している 場合、その値は optional オブジェクトのフットプリント内に割り当てられることが保証されており、動的メモリ割り当ては一切発生しません。したがって、 optional オブジェクトは、たとえ operator*() operator->() が定義されていても、ポインタではなくオブジェクトをモデル化します。

optional<T>型のオブジェクトが boolへの文脈的変換 が行われる場合、その変換はオブジェクトが 値を含む ときは true を返し、オブジェクトが 値を含まない ときは false を返します。

optional オブジェクトは以下の条件で 値を保持します :

  • オブジェクトは型 T の値で初期化されます。
  • オブジェクトは 値を含む 別の optional から代入されます。

オブジェクトは以下の条件で 値を保持していません

  • オブジェクトはデフォルト初期化されます。
  • オブジェクトは std::experimental::nullopt_t の値、または 値を保持していない optional オブジェクトで初期化されます。
  • オブジェクトは std::experimental::nullopt_t の値から、または 値を保持していない optional から代入されます。

目次

**翻訳の説明:** - 「Contents」→「目次」に翻訳 - C++関連の専門用語(Template parameters、Member types、Member functions、Observers、Modifiers、Member objects、Non-member functions、Helper classes、Helper objects)は原文のまま保持 - HTMLタグ、属性、class名、id、数値は一切変更せず - フォーマットと構造は完全に維持

テンプレートパラメータ

T - 初期化状態を管理する値の型。この型は Destructible の要件を満たさなければならない。

メンバー型

メンバー型 定義
value_type T

メンバー関数

optionalオブジェクトを構築する
(public member function)
含まれている値があれば破棄する
(public member function)
内容を代入する
(public member function)
オブザーバー
含まれている値にアクセスする
(public member function)
オブジェクトが値を含んでいるかチェックする
(public member function)
含まれている値を返す
(public member function)
利用可能な場合は含まれている値を、そうでない場合は別の値を返す
(public member function)
モディファイア
内容を交換する
(public member function)
含まれている値をその場で構築する
(public member function)

メンバーオブジェクト

メンバー名 定義
val (private) 格納された値へのポインタ(同じオブジェクトのデータメンバを指す)、この名前は説明専用

非メンバー関数

optional オブジェクトを比較する
(関数テンプレート)
optional オブジェクトを作成する
(関数テンプレート)
std::swap アルゴリズムを特殊化する
(関数)

ヘルパークラス

std::hash アルゴリズムを特殊化
(クラステンプレートの特殊化)
(library fundamentals TS)
未初期化状態のoptional型の指示子
(クラス)
(library fundamentals TS)
optional型のインプレース構築のための曖昧性回避タグ型
(クラス)
(library fundamentals TS)
値を含まないoptionalへのチェック付きアクセスを示す例外
(クラス)

ヘルパーオブジェクト

(library fundamentals TS)
nullopt_t 型のオブジェクト
(関数)
(library fundamentals TS)
std:: experimental :: in_place_t 型のオブジェクト
(関数)