読者です 読者をやめる 読者になる 読者になる

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

C++

いつものように、boostjpサイトで、リリースノートの日本語訳を作成して公開しています。

新ライブラリ

今回の新ライブラリは、以下の2つです。

  • Endian
    • プロセッサのエンディアンに関係なく、適切なバイトオーダーに変換する型と関数。
  • Sort
    • 一般的な状況でO(n*log(n))よりも高速な、ハイブリッドな基数ソートであるスプレッドソート(spreadsort)を含む。

主な更新内容

更新はたくさんありますが、目立ったところをいくつか列挙します。

  • Boost.Fusionのstd::tupleアダプトが正式サポートになった
    • Flastさんががんばってpull requestを送りまくってくれました。お疲れさまでした。
  • Boost.Variantのapply_visitor()関数に、ジェネリックラムダを指定できるようになった。
    • C++14サポートです。
  • Boost.Geometryの、disjoint()intersects()がサポートする組み合わせが増えた
  • Boost.Containerに、small_vectorというコンテナが追加された
    • 小さな要素数に最適化されたvector。テンプレートパラメータで指定された要素数の領域を事前に確保することにより、その要素数を超えない限り、insert()push_back()でメモリ確保を行わない。
    • static_vectorとは異なり、フリーストアからメモリ確保し、キャパシティを超えた領域の拡張が可能。
    • LLVMのSmallVectorクラスを参考にしている
  • Boost.Containerのランダムアクセスイテレータをサポートするコンテナに、nth()index_of()メンバ関数が追加された。