コンテンツにスキップ

C++/標準ライブラリ/expected

出典: フリー教科書『ウィキブックス(Wikibooks)』

C++教科書/標準ライブラリ編/<expected>の章[編集]

C++標準ライブラリ <expected> ヘッダー[編集]

概要[編集]

<expected> ヘッダーは、C++23で導入された新しいヘッダーであり、値またはエラー状態を表す expected 型を提供します。この型は、関数や演算子の戻り値として使用することで、エラー処理を簡潔かつ効率的に行うことができます。

expected 型[編集]

expected 型は、T 型の値または std::error_code 型のエラー状態を持つことができます。型パラメータ T は、任意の型を指定することができます。

C++
template <typename T>
class expected;

expected 型の値は、以下のいずれかの方法で生成できます。

  • std::make_expected(T) 関数を使用して、値を直接生成する
  • std::unexpected() 関数を使用して、エラー状態を生成する
  • 関数や演算子の戻り値として受け取る

expected 型の値には、以下のメソッドが用意されています。

  • value() メソッド: 値を取得する
  • error() メソッド: エラー状態を取得する
  • has_value() メソッド: 値を持っているかどうかを確認する
  • or_else(T) メソッド: エラー状態の場合にデフォルト値を返す
  • and_then(std::function<expected<U>(T)>) メソッド: 値を持っている場合に別の expected 型を生成する

国際規格の定義[編集]

<expected> ヘッダーは、C++23の国際規格 ISO/IEC 14882:2023 で定義されています。

まとめ[編集]

<expected> ヘッダーは、C++23で導入された新しいヘッダーであり、値またはエラー状態を表す expected 型を提供します。この型は、関数や演算子の戻り値として使用することで、エラー処理を簡潔かつ効率的に行うことができます。

expected 型は、C++におけるエラー処理の新しい標準的な方法であり、今後ますます多くのライブラリやアプリケーションで使用されることが期待されています。