最終更新日時:
が更新

履歴 編集

Boost 1.68.0リリースノート

本家リリースノート:

リポジトリは以下:

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

Windowsユーザーへの注記

Boost.WinAPIのターゲットを、(それが可能な状況で) デフォルトでWindows 7に更新した。前回までのリリースでは、デフォルトはWindows Vistaだった。

Boost.WinAPIは、いくつかのBoostライブラリの内部で使用している、Windows SDKの抽象レイヤーである。Boost.Beast、Boost.Chrono、Boost.DateTime、Boost.DLL、Boost.Log、Boost.Process、Boost.Stacktrace、Boost.System、Boost.Thread、Boost.UUIDなどで使用している。

ターゲットのWindowsバージョンを選択するためには、Boostをビルドする際にBOOST_USE_WINAPI_VERSIONを定義する必要があり、その値は_WIN32_WINNTと同じである。例として:

b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage

Windows APIのバージョンリストは、以下のページで確認できる:

新ライブラリ

  • YAP
    • C++14以降用の、Expression Templateのライブラリ。作者Zach Laine

更新ライブラリ

Beast

全ての複合操作の実装でexecutor_work_guardを使用するよう、不足していたところを修正。非同期操作の完了ハンドラに関連したクラッシュを経験しているユーザーは、アップグレードすることを推奨する

新機能

  • <beast/experimental>ディレクトリに含まれる機能は、インタフェースが安定していないため、今後のバージョンで変更される可能性がある
  • GitHub #1108 SSLストリームのパフォーマンス限界に対するワークアラウンドとして、flat_streamを追加
  • GitHub #1151, GitHub #595 ICY HTTP response handshakesをパースするフィルタを持つhttp::icy_streamストリームを追加
  • SSLのより良いパフォーマンスとムーブ構築のために、ssl_streamを追加
  • 単体テストのユーティリティとして、test::connecttest::errortest::fail_counttest::streamを追加
  • http::is_mutable_body_writerメタ関数を追加
  • 疑似乱数生成器 (PRNG) に手動でエントロピーを提供するために、websocket::seed_prngを追加
  • コネクションが使用するセキュアな疑似乱数生成器として、websocket::stream::secure_prngを追加

改善

  • 生成されるWebSocketのマスクが、デフォルトでセキュアな疑似乱数生成器を使用するようにした
  • buffers_adapterを改善
  • GitHub #1109 HTTP server doc rootsの例で、文字列共有を使用するようにした
  • GitHub #1079 handler_ptr::has_valueを追加

修正

  • GitHub #1073 advanced server examplesでの競合を修正
  • GitHub #1076 複合操作でexecutor_work_guardを使用するようにした
  • GitHub #1079 誤った (spurious) assertを削除
  • GitHub #1113 message based HTTP writesに、constと非constのオーバーロードを追加
  • GitHub #1119 未使用変数の警告を修正
  • GitHub #1121 フィンガープリントのルート証明を例で使用するようにした
  • GitHub #1141 ちらかっていた複合操作のドキュメントを整理
  • ちらかっていたWebSocketストリームのドキュメントを整理
  • bind_handlerでの、ムーブしかできない引数を修正
  • http::parserクラスのコンストラクタについてドキュメントを修正
  • buffers_adapterイテレータのvalue typeを修正
  • buffers_adapter::max_sizeを修正
  • buffers_prefixイテレータのデクリメントを修正
  • FieldsFieldsWriterコンセプトのドキュメントを修正
  • BodyReaderのコンストラクタ要件のドキュメントを修正

破壊的変更

  • 非推奨だったserializer::reader_implを削除
  • 非推奨だったBodyコンセプトのreaderwriterのコンストラクタシグニチャを削除

Context

  • GitHub #78 context-impl=ucontextでのリンクエラーを修正 : boost::context::detail::current_recの重複定義

Coroutine2

  • GitHub #14 Visual Studio 2015 Update 3で、スタック巻き戻し中にクラッシュする問題を修正
  • GitHub #18 いくつかの導入ドキュメントに、なぜCoroutine2を使うのかを記載
  • GitHub #20 Visual Studioで、C2039でコンパイルに失敗する問題を修正
  • GitHub #22 未定義動作のドキュメントを修正

Fiber

  • GitHub #170 buffered_channelにおいてチャンネルが満杯になったときの説明をドキュメントに追記
  • GitHub #172 mingw-w64環境での、HANDLE (void*)からstd::thread::native_handle_typeへの変換でのコンパイルエラーを修正
  • GitHub #175 bufferd_channel内のスピンロックのunlockミスで"Operation not permitted"例外が送出されていた問題を修正
  • NUMAサポートを追加ライブラリファイルfiber-numaとして分離。有効にするにはnumaプロパティを使用する (numa=on)

GIL

  • I/O拡張を完全に書き直して導入した
  • C++11準拠のコンパイラを要求するようにした
  • ドキュメントを再フォーマットし、更新した

Graph

  • GitHub #89 標準C++で非推奨・削除された機能を、以下のように置き換えた:
    • std::bind1ststd::bind
    • std::auto_ptrstd::unique_ptr
    • std::random_shufflestd::shuffle
  • GitHub #84 VS2015のリリースビルドでコンパイルエラーになる問題を修正
  • GitHub #87 Stanford GraphBaseの例を修正
  • GitHub #103 iterator_core_accessのfriend宣言を修正
  • GitHub #104 不足していた<boost/iterator.hpp>のインクルードを追加
  • GitHub #90 未使用変数の警告を修正
  • GitHub #88, GitHub #98, GitHub #104 いくつかのドキュメント上のtypoを修正
  • GitHub #85, GitHub #105 テストとサンプルコードのいくつかの問題を修正

Lexical Cast

Log

  • GitHub #39 VxWorksのサポートを改善
  • dumpストリームマニピュレータの実装で、x86 PIEレジスタに対しては、ebxレジスタをsave / restoreするようにした

Math

  • GitHub #128 求積法 (quadrature) と線積分 (contour integration) で任意精度の複素数をサポート
  • 多項式加算 (polynomial addition) のパフォーマンスを改善

Multi-index

  • Trac #13478 ムーブできるがコピーできない要素型を持つコンテナを、シリアライズできるようにした。報告者のSébastien Paris氏に感謝
  • Trac #13518 multi_index_containerのデフォルトコンストラクタにexplicitが付いていたので外した

Multiprecision

  • 任意精度の複素数をサポート

Optional

  • GitHub #52 std::optionalとの互換性のために、has_value()メンバ関数を追加
  • T -> Uの変換関数を使ってoptional<T>からoptional<U>に変換するためのmap()関数を追加
  • T -> optional<U>の変換関数を使ってoptional<T>からoptional<U>に変換するためのflat_map()関数を追加

Predef

  • __ARM_ARCHマクロの検出をサポート (Tim Blechmann氏)
  • PTXアーキテクチャの検出を追加 (Benjamin Worpitz氏)
  • nvccコンパイラの検出を追加 (Benjamin Worpitz氏)
  • CUDAの検出を追加 (Benjamin Worpitz氏)
  • 廃止になったBOOST_ARCH_AMD64へのリファレンスを削除 (Peter Kolbus氏)

Program Options

  • GitHub #53 オプションごとの複数のロング名 (long name) をサポート。Eyal Rozenberg氏に感謝

Python

  • GitHub #193 Windows環境での、autolinkのバグを修正

Rational

  • GitHub #19 normalize()関数の未定義動作を修正

Signals

  • ライブラリ削除の注意 Boost.Signalsは、次のリリースで削除される
    • このライブラリは、バージョン1.54.0から非推奨となっていた。Boost.Signals2に移行すること

Stacktrace

  • GitHub #54 Solarisとその他プラットフォームでのコンパイルエラーを修正するために、dladdr()関数に渡すアドレスのconst修飾を修正
  • Boost.LexicalCastへの依存をなくした

System

  • GitHub #23 C++14以降向けに、error_codeerror_conditionconstexprを追加した

Type Index

  • Boost.MPLへの依存をなくした

Uuid

  • GitHub #69 後方互換性のために残していた、sha1のdetail名前空間にリダイレクトしていた非推奨のヘッダを削除
  • GitHub #67 boost::uuids:uuidクラスに対するstd::hashの特殊化をサポート
  • GitHub #74 random generatorsに対するムーブセマンティクスをサポート
  • GitHub #74 エントロピー獲得時にEINTRを正しくハンドリングするようにした
  • GitHub #75 Linux環境で、getentropy(3)の代わりにgetrandom(2)を使用するようにした

テスト済みコンパイラ

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

  • Linux:
    • Clang:
    • GCC:
    • Intel:
    • QCC:
  • OS X:
    • Apple Clang:
    • GCC:
    • Intel:
  • Windows:
    • GCC, mingw:
    • Visual C++:
  • FreeBSD:
    • GCC:
  • QNX:
    • QCC:

追加して含まれるテストコンパイラ:

  • Linux:
    • Clang:
    • GCC:
    • GCC, C++11:
    • GCC, C++14:
    • Intel:
    • Intel, C++11:
  • OS X:
    • Apple Clang:
    • Apple Clang, C++11:
    • Apple Clang, C++14:
    • Clang:
    • Clang, C++11:
    • GCC:
    • Intel:
  • Windows:
    • GCC, mingw:
    • Visual C++:
  • FreeBSD:
    • GCC:
  • QNX:
    • QCC:

翻訳

Akira Takahashi