N3732 Value-Oriented Concurrent Unordered Containers
C++14後のConcurrency TSでは、複数スレッドから安全に使えるunordered連想コンテナが予定されています。
提案文書のタイトルにあるように、このコンテナの設計は、「値指向(Value-Oriented)」になっています。これまでのunordered連想コンテナは、検索結果として要素への参照が返ってきましたが、並行プログラミングではそのような挙動は危険なので、参照の代わりに値が返されます。
たとえば、find()
関数は以下のようなインタフェースが考えられています。
optional<mapped_type> unordered_map::find(const key type& k) const;
引数としてキーを与えると、対応する要素がoptional
として返されます。見つからなかったらnullopt
が返ります。
その他、Intel TBBやMicrosoft PPLの実装経験に基づいた設計が導入される予定になっています。