統一的な有効値と無効値の表現をもつoptionalクラスC++C++14で入りそうで入らなかったoptionalクラスですが、C++1zで入ることになりました。optionalは、テンプレート引数で指定した型の値を有効値、std::nulloptという特殊なオブジェクトを無効値と見なす型です。ひとつの型で有効値と無効値を表すために、intだったら負の値、ポインタだったらヌル、文字列だったら空文字列を無効値として使用されてきました。これは関数の仕様として無効値の範囲を定義する方法ですが、optionalクラスは型として無効値の表現を持ちます。}}出力:3nulloptこれにより、関数を定義するプログラマが、有効値かエラーかのどちらかを戻り値として返したい場合には、値の仕様を考える必要なく、optionalを戻り値の型に設定すればよくなります。optionalクラスは、新設される<optional>ヘッダで定義されます。Boostと標準の差異optionalクラスは、Boostで古くから提供されていた機能で、それをベースに標準の仕様が策定されました。1.61.0時点では、この2つの差異はかなり小さくなっています。1要素のRangeとして扱う機能はありません。any/optional/variantお断りこの記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。1.56.0リリースノ...2013-04-18エラー許容型を作ったerrorableというクラスを作りました。Librariesコントリビュータ。boostjp/cpprefjpサイトコアメンバ。blogBoost.Multi-Index作者ブログBoost.Asio作者ブログBoost.Geometry作者ブログBoost.Thread作者ブログboost.develWandboxはてなブログをはじめよう!faith_and_braveさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。