C++14 Concurrency TS 並行ハッシュコンテナ

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の実装経験に基づいた設計が導入される予定になっています。

参照