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