Boost 1.56.0がリリースされました

GitHubへの移行とモジュール化

このバージョンから、Boostの開発リポジトリSubversionからGitHubに移行しました。それにともない、GitHub上ではBoostの各ライブラリが、モジュールという単位で分割されるようになりました。モジュールは、関連するライブラリを集めたものや、Boostのいろいろなライブラリで使うベースライブラリをまとめたものです。CoreやWinApiなどのモジュールは後者になります。

新ライブラリ

Boost 1.56.0では、アラインメントを扱うAlignライブラリと、C++11のstd::type_indexのBoost版でもあり、それの拡張も入っているType Indexライブラリが追加されました。

非推奨ライブラリ

BoostからC++11標準に入れるたたき台となっていたライブラリ群であるTR1が非推奨になりました。このライブラリは、Boostの機能をstd::tr1名前空間で定義し直しただけのものなので、Boostの機能を使うか、C++11標準ライブラリを代わりに使ってください。

その他主要な更新

  • boost::variantが可変引数テンプレートに対応しました。コンパイルがいくらか速くなることを期待できます。
  • Containerに、DLmallocベースのアロケータが入りました。
  • Containerのmapsetの実装に使用するツリー構造が、選択できるようになりました。
  • Flyweightが、可変引数テンプレート、ムーブ、initializer_listでの初期化に対応しました。
  • Multi-Indexのhashed_indicesが、高速化しました。
  • Multiprecisionに、2進表現の浮動小数点数cpp_bin_floatが追加されました。
  • Optionalが、C++標準に提案されている仕様に対応しました。ムーブやemplace()のサポート、値にアクセスする新たな方法として、value()value_or()value_or_eval()のサポートが追加されました。(nulloptはまだ)
  • Smart Pointerの、make_shared()allocate_shared()に、配列のサポートが追加されました。
  • Threadに、C++標準のConcurrency TSで提案されているfutureの拡張であるwhen_any()when_all()が追加され、同様に提案されているexecutorが追加されました。

そのほか細かい変更は、リリースノートを参照してください。この記事の先頭に、日本語訳したリリースノートへのリンクを貼ってあります。