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の
map
とset
の実装に使用するツリー構造が、選択できるようになりました。 - 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が追加されました。
そのほか細かい変更は、リリースノートを参照してください。この記事の先頭に、日本語訳したリリースノートへのリンクを貼ってあります。