Boost 1.36 リリース
Boost 1.36がリリースされました。
http://www.boost.org/users/news/version_1_36_0
新しく追加されたライブラリは
- Accumulators
- Exception
- Units
- Unordered
です。
内容はLet's Boostにすでに紹介が出ています。
Unorderedはハッシュを使うコンテナで、標準C++ライブラリの拡張案(TR1)を実装したものです。自分で作った型を入れる場合はoperator==とハッシュ関数を書かなければならないのですが、標準の型に関してはハッシュ関数が提供されていて、本家を調べてみると自作の型に関しても
- ユニークな値(idとか)を持つオブジェクトはその値だけをハッシュしてやればいい(ハッシュなんだしそりゃそうだ)
- 2つ以上の値の組合せがユニークとなるオブジェクト(point型のx,yとか)はboost::hash_combineを使う
とかがこの辺に書いてありました。上の二つは"Extending boost::hash for a custom data type"と"Combining hash values"のページです。
・・・が、boost::hash_combineはTR1には入らずにTR2に持ち越すらしい?