読者です 読者をやめる 読者になる 読者になる

optionalがC++14入り

C++

N3672 A proposal to add a utility class to represent optional objects (Revision 4)


optionalC++14に入ることが決まりました。
boost::optionalベースで、細かいところが変わってます。変更点は、上記paperかこのブログの履歴を追ってもらうとして、Revision 4ではoperator==()operator<()以外の比較演算子が削除されています。
これは、それ以外の演算子の動作について合意がとれなかったのと、これらの演算子が、コンテナにoptionalを入れることのみを目的にしているからだそうです。


std-proposalsでいまsatodaさんが「せめてoperator!=()はほしい」という意見を出して議論しています。
optional Rev.4 (N3672): What was the rationale to remove !=, >=, ...
Fixing Standard Library relational operators


Boost MLで「optionalC++14に入るよー」と作者が報告してるので、おめでとうはこちらへ:
std::optional<T> - boost.devel