最終更新日時:
が更新

履歴 編集

Boost 1.81.0リリースノート

本家リリースノート:

リポジトリは以下:

リポジトリからのビルド方法は、egtraさんのブログを参照:

新ライブラリ

  • URL
    • C++11のみを使用してURLの解析、変更、表示をするライブラリ。機能として、高速なコンパイル、強い不変条件、およびメモリフレンドリーなアプローチによる厳密なコンプライアンスが含まれる (作者Vinnie Falco, Alan de Freitas)

更新ライブラリ

Beast

  • buffers_generatorを追加
  • beast::http::message_generatorを追加
  • AsioでBeastのbufferを使用するためのbuffer_refを追加
  • 操作ごとのキャンセルをサポート
  • C++20 awaitのサンプルコードを追加
  • WebSocketのメッセージごとの圧縮オプション
  • WebSocketのタイムアウトオプションのAPI
  • multiple content lengthのエラー
  • デフォルトの圧縮とrebindをサポート

Container Hash

  • メジャーアップデート
  • boost::hashの特殊化を削除し、常にhash_valueを呼び出すようにした
  • BOOST_HASH_NO_EXTENSIONSのサポートを削除した。拡張は常に有効になる
  • すべての標準コンテナをサポート。これにはstd::forward_list、と非順序連想コンテナが含まれる
  • ユーザー定義のコンテナ (イテレータを返すbegin() / end() をもつ型) をサポート
  • describedなstruct / class (BOOST_DESCRIBE_STRUCTもしくはBOOST_DESCRIBE_CLASSでアノテーションがつけられた型) をサポート
  • hash_combineを改善
  • 文字列ハッシュのパフォーマンス (および結果の品質) を改善。文字列のboost::hashは64ビットモードでSMHasherに渡すようになった
  • ドキュメントを、変更を反映するために大幅に改訂した

Describe

  • -pedantic オプションが使用されたときに enumerators.hppbases.hpp、および members.hpp を含めることができるようにするために、BOOST_DESCRIBE_ENUM の呼び出しは modifiers.hpp から 別のヘッダー modifier_description.hpp に移動した。 その結果、modifiers.hppにはenum.hppが含まれなくなった。 この暗黙的なインクルードに依存しているコードは失敗する可能性があり、enum.hpp をインクルードするように修正する必要がある

Flyweight

  • メンテナンス作業

Fusion

  • GitHub #240 fusion::identity_viewを追加
  • GitHub #239 fusion::transform_viewに連想シーケンスのサポートを追加
  • GitHub #237 連想シーケンスでfusion::reverse_viewを使用した場合のコンパイルエラーを修正
  • GitHub #261 Clang 13での-Wdeprecated-copy警告を修正
  • GitHub #249 依存関係の小さな再編成。Boost.Coreからboost::refboost::noncopyableが使用されるようになった
  • GitHub #245, GitHub #236 LinuxとMacOSでのclangとgccのCIテストを追加し、WindowsでのCIテストを修正した
  • GitHub #234, GitHub #235, GitHub #238 ドキュメントの改善と誤字の修正

JSON

  • object::stable_eraseを追加
  • parsestd::istreamのオーバーロードを追加、operator>>valueのオーバーロードを追加
  • valueに右辺値修飾のアクセッサを追加
  • Conversion traitsを再設計
  • describedなクラス、enum、std::optionalstd::variant、null-likeな型 (std::nullptr_t, std::nullopt_t, std::monotypeを含む) の変換をサポート
  • valueからユーザー定義型への例外を投げない変換を追加

Locale

  • いくつかの破壊的変更を含むメジャーアップデート
  • C++11 のサポートが必要になった。C++03 以前のサポートは廃止された
  • 一部のenumはenum classに変換された。名前の競合を回避する
  • -sICU_LINK_LOCALE-sICU_LINK を、Boost.RegEx で行われるように、きめの細かい設定オプションに置き換える
  • libiconv の検出を修正し、一部のプラットフォームで Boost.Locale を (再び) ビルドできるようにしました。
  • std::auto_ptr の使用とサポートを削除
  • Windows で wchar_t を使用して codecvt が UTF-16 エンコーディングを想定・使用するようにした
  • パフォーマンスを向上: basic_formatdate_timehold_ptrをムーブ可能にし、フォーマットキャッシュの使用を修正
  • Boost.Locale をより多くの ICU バージョンと互換性を持たせるようにした (特にテスト)
  • 一部のクラスの RTTI 定義を修正 (可視性の問題)
  • 一部の libc++ バージョンとの ICU バックエンドの互換性を修正
  • 一部の演算子の戻り値を修正して、const でない *this を正しく返すようにした
  • date_time の負のロールの int-overflow を修正
  • ビルドログをきれいにする多くの警告を処理または抑制
  • より多くの Windows コードページのサポートを追加
  • ISO-2022-JP などの Windows コードページのサポートを修正

Multi-index

  • メンテナンス作業

Nowide

  • MSVCのテストがビルド失敗する問題を修正

System

  • マクロ BOOST_SYSTEM_DISABLE_THREADS を定義して、<mutex> の使用を無効にできるようになった (例: シングルスレッドの libstdc++)
  • result<>value_type, error_type, in_place_value, in_place_errorを追加
  • result<>emplace()を追加

Unordered

  • メジャーアップデート
  • オープンアドレッシングに基づく高速なコンテナとしてboost::unordered_flat_mapboost::unordered_flat_setを追加
  • すべてのコンテナにCTAD推論ガイドを追加
  • LWG issue 2713で規定された、不足していたコンストラクタを追加

Variant2

  • boost::json::value_fromboost::json::value_toのサポートを追加

テスト済みコンパイラ

主要なテストコンパイラ:

  • Linux:
    • Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0
    • Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
    • Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
    • Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
    • Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
    • GCC: 4.6.3, 11, 12
    • GCC, C++11: 4.7.3, 4.8.5, 11, 12
    • GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
    • GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
    • GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
  • OS X:
    • Apple Clang: 11.0.3
    • Apple Clang, C++11: 11.0.3
    • Apple Clang, C++14: 11.0.3
    • Apple Clang, C++17: 11.0.3
    • Apple Clang, C++20: 11.0.3
  • Windows:
    • Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3

翻訳

Akira Takahashi