最終更新日時:
が更新

履歴 編集

Boost 1.73.0リリースノート

本家リリースノート:

リポジトリは以下:

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

既知の問題

  • Boost.Outcome
  • Boost.Beast
    • パッチ
    • すべての非同期初期化関数をuse_awaitableに修正
    • use_awaitableでのasync_detect_sslを修正
    • span_bodyでのC++20非推奨化の警告を修正
    • スタンドアロン版がstring_viewによってコンパイルエラーになる問題を修正
    • MSVCの/std:c++latestオプションでコンパイルエラーになる問題を修正

新ライブラリ

  • Nowide
    • Windowsで標準ライブラリと組み合わせて使用するUTF-8 API (作者Artyom Beilis)
  • StaticString
    • コンパイル時の固定キャパシティと連続した埋め込みストレージをもつ、動的なサイズ変更可能な文字列

更新ライブラリ

更新ツール

Align

  • 古いmingw32をサポートするようaligned_allocを更新

Any

  • <algorithm>をインクルードしないことでコンパイル速度を向上
  • CI強化を含むメンテナンス作業

Asio

  • C++20コンセプト構文との互換性を修正
  • POSIX descriptorクラスのムーブコンストラクタをnoexceptにした
  • ssl::rfc2818_verificationを置き換えるssl::host_name_verificationクラスを追加。ssl::rfc2818_verificationクラスは非推奨にした。この変更の結果として、SSLサポートはOpenSSL 1.0.2で導入された機能に依存するようになった
  • ssl::contextクラスにnative handleの所有権をとるコンストラクタを追加
  • GCCでのC++言語バージョンの検出方法として__cplusplusマクロを使用するよう修正
  • endpointの非同期解決操作でのwork counting問題を修正
  • strand<>の変換コンストラクタと代入演算子を修正
  • fork後にresolverが正しく再始動することを保証
  • 現在のNetBSDリリースとの互換性を修正
  • いくつかのasync_readオーバーロードでの誤ったハンドラ要件 (spurious handler requirement) を削除
  • add_certificate_authority関数の非EOFエラーを伝播するようssl::contextクラスを変更
  • Windows固有のthread_poolのデストラクタが、プールにI/Oオブジェクトが関連づけられるときにハングが発生する問題を修正
  • selectリアクターを「self pipe trick」のソケットエラー時に再生成するよう変更。これはWindowsのいくつかのバージョンでシステムのスリープ後にソケットが切断される問題への対処である
  • C++98で参照が折りたたまれない (the lack of reference collapsing) ために発生していた、buffered streamsのコンパイルエラーを修正
  • priority_schedulerのサンプルコードで、shutdown()destroy()の使用法を示すよう変更した
  • いくつかの不要なヌルポインタチェックを削除
  • TVタイトルをWindowsアプリとして認識するようWindowsプラットフォームの検出を修正
  • Emscripten互換のパッチをいくつか追加
  • use_awaitable_t::as_default_on関数内のコンパイルエラーを修正
  • boost.bindのプレースホルダーを使用するすべての箇所で、boost::placeholders名前空間を使用するよう修正
  • 誤ったオーバーロード選択によって、async_composeの実装がコンパイルエラーにあった問題を修正
  • いくつかの非仮想デストラクタによる警告を抑制
  • 多くのドキュメント修正と改善

Assert

  • source_locationクラスを追加

Atomic

  • C++20のatomic_refを実装。ドキュメント注意書きを参照
  • C++20で導入されたatomic_flag::test操作を実装
  • atomic<T>Tのアライメント要件を考慮するべきであり、それらがatomicの内部ストレージより高い要件の場合に違いが生じる
  • 破壊的変更 atomicatomic_refで使用される値型Tの要件を表明する静的アサートを追加。これにより、不正な型をアトミックに使用することを禁止する
  • 内部のロックプールの実装を改善。プールをより大きくし、ロックの選択にはアトミックオブジェクトのアライメントを考慮するようにした。これにより、スレッド競合 (thread contention) の可能性が減る
  • 8ビットと16ビットの引数に対するbit_test_and_*操作で生成される不正なx86コードを修正。他のアーキテクチャには影響しない
  • value_typeのアライメント要件がatomicの内部ストレージより小さい場合に、compare_exchange_*操作がアライメントされていないメモリアクセスをしてしまう可能性があったのを修正
  • 破壊的変更 boost/atomic/atomic.hppboost/atomic/atomic_flag.hppboost/atomic/fences.hppをインクルードせず、boost::atomicクラステンプレートと関連する型の別名のみを定義するようにした。必要な場合はそれぞれのヘッダを明示的にインクルードするか、Boost.Atomicの全てをインクルードするboost/atomic.hppを使用すること
  • atomic<T>::storage()アクセッサと関連するatomic<T>::storage_type型を非推奨化。代わりにatomic<T>::value()atomic<T>::value_typeを使用することを推奨する。ユーザーはBOOST_ATOMIC_SILENCE_STORAGE_DEPRECATIONを定義することで非推奨の警告を無効にできる。非推奨となった機能は将来のリリースで削除される
  • BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TESTのサポートを削除。このマクロは1.73.0の2年前にリリースされたBoost.Atomicの1.67.0において*_and_test操作の変更された戻り値への移行を助けるためにあった

Beast

  • 今回はメンテナンスアップデートとなる
  • Beast dynamic buffers内の入れ小型mutable_data_typeを非推奨化した。代わりにmutable_buffers_typeを使用するかBOOST_BEAST_ALLOW_DEPRECATEDをdefineすること。影響を受ける型は以下:
    • buffers_adaptor
    • flat_buffer
    • flat_static_buffer
    • multi_buffer
    • static_buffer
  • このライブラリを使用しているユーザーもしくはユーザー企業がどのようにこのライブラリを使用しているか教えてほしい。以下にリストがある:
  • 雑多な修正
    • ルート証明の例を更新
  • 修正
    • Content-Lengthの解析を修正
    • buffer_bytesのドキュメントを正した
    • strandにディスパッチする例を修正
    • basic_stream::closeが例外を投げないことを保証
    • sha1.hpp内のインクルード漏れを修正
    • ostreamの警告を修正
    • field digestはエンディアン非依存
    • README内のリンク切れを修正
    • ostreamのフラッシュを修正
    • いくつかのWin32エラーをネットワークエラーコードに修正
    • flat_buffer::shrink_to_fitnoexceptにした
    • eraseフィールドを修正
    • コンパイル設定のドキュメントを修正
    • strandを使用する例を正した
    • File:readでのend-of-fileの動作をドキュメントで明確にした
    • file_bodyがeofの読み込み時にshort_readを返すようにした
    • Win32でのfile_bodyのバグを修正
    • ostream_bufferDynamicBuffer_v1::commitの事前条件を満たすようにした
    • basic_file_bodyのFileメンバにアクセッサ関数を追加
    • リリースビルドのドキュメントを修正
    • file_win32がUTF-8パスをサポート
    • file_stdioがUnicodeパスをサポート
    • echo-opのテストを修正
    • file_win32のボディがhttp::serializer::splitを尊重するようにした
    • 非MSVCのcmakeを修正

Context

  • GitHub #133 IBM Zのfcontextルーチンを修正
  • GitHub #132 mips64/n64のalignを2から3に修正
  • GitHub #131 OSプラットフォームとしてMIPS32とMIPS64で異なるABIを使用するようにした
  • GitHub #129 RISC-Vアセンブリのnon-PICを修正

Conversion

  • 参照用のboost::polymorphic_downcastを追加 (Julien Delacroix氏のパッチに感謝)
  • 重大なドキュメント更新

DateTime

  • GitHub #123 C++14以降でconstexprをサポート
  • GitHub #134 このライブラリのすべての関数をインラインにした。ユーザーはライブラリをリンクする必要がなくなった。ビルドの互換性のためライブラリファイルを残している
  • GitHub #132 古いIOとUSE_DATE_TIME_PRE_1_33_FACET_IOマクロを非推奨化
  • 細かなドキュメントの更新とバグ修正

DLL

  • GitHub #35 boost::dll::smart_library内のデマングリングを修正してテスト (Ramil Gauss氏に感謝)
  • GitHub #30 boost::dll::load_mode::typeに対するUBSanを通るようにした
  • GitHub #34 MPLへの依存をやめてコンパイル速度を改善 (Nikita Kniazev氏に感謝)
  • GitHub #33 WindowsのClangとICC対応を修正し、これらのプラットフォームをCIでサポート (Nikita Kniazev氏に感謝)
  • CI強化とテスト改善を含むメンテナンス作業

DynamicBitset

  • 最大ブロック制限の定義での、移植性の問題を修正

Flyweight

  • メンテナンス上の修正

Geometry

  • 改善
    • GitHub #650 intersection()での不足していた組み合わせの修正と、tupleでの結果出力を導入
    • GitHub #671 d3::point_xyzジオメトリモデルを追加 (Digvijay Janartha氏に感謝)
  • 解決したIssue
    • GitHub #657 EPSG:3785の定義が間違っていたのを修正
  • バグ修正
    • GitHub #639 R-treeの例外安全性を改善
    • GitHub #668 Andoyer inverse formulaを近接点 (close points) に対して修正
    • GitHUb #687 distanceアルゴリズムでのぶら下がり参照を修正
  • 非推奨化
    • GitHub #590 C++03サポートを非推奨化。Geometryは1.75.0以降でC++14を要求する予定

GIL

  • 追加
    • GitHub #457 imageクラスにムーブコンストラクタとムーブ代入演算子を追加
    • GitHub #456 any_image_viewクラスにsize()メンバ関数を追加
  • 変更
    • GitHub #459, GitHub #464 GIL内で使用するテストフレームワークをBoost.TestからBoost.LightweightTestに置き換えた。それにともない、test/extension/io/サブツリーとJamfile関連のターゲットを再構築
    • GitHub #459 Boost.MPLの残っていた使用部分を削除
    • GitHub #411 すべてのマクロをBOOST_GIL_プレフィックスをつけるよう名称変更
    • GitHub #419 CMakeのすべての設定オプションをBOOST_GIL_プレフィックスをつけるよう名称変更
    • GitHub #466 使用されておらず、およらく未完成のextension/dynamic_image/reduce.hppを削除。これは、Lubomir Bourdev, Jaakko Jarviによる論文「Efficient Run-Time Dispatching in Generic Programming with Minimal Code Bloat (最小のコード量によるジェネリックプログラミングでの効率的な実行時ディスパッチ)」で解説される手法を実装する試みだった
    • Boost.MPL、Boost.System、Boost.Testへの直接的な依存を削除
    • I/O拡張テストのpublicなコンパイル時設定マクロを削除し始めた。例としてBOOST_GIL_IO_TEST_ALLOW_READING_IMAGESBOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGESを削除し、代わりにテストターゲットがビルドされると、すべてのテストケースが無条件にビルドされる
  • 修正
    • GitHub #433 I/O拡張オブジェクトの破棄中にlongjumpの相互作用を回避
    • GitHub #429 imageクラスのコンストラクタでのalignmentパラメータにデフォルト値が抜けていた
    • GitHub #414 破損した (corrupted) PNGファイルを読み込んだときにセグメンテーション違反が起きる問題を修正
    • GitHub #409 I/O拡張の古いI/O v1インタフェースの、戻り値の不正な初期化を修正
  • 謝辞
    • Samuel Debionne, Thiago Henrique Hüpner, Pranam Lashkari, Mateusz Loskot, Debabrata Mandal, Olzhas Zhumabek氏らに感謝

Histogram

  • 新機能
    • アキュムレータ
      • count accumulatorを追加。これは各セルに任意のメタデータを持たせるために使用できる
      • 他のaccumulatorとの一貫性のためにsumvalue()メンバ関数を追加
    • アルゴリズム
      • reduce
        • 位置コマンド (positional commands) をサポート
        • sliceコマンドがcategory軸をサポート
        • cropコマンドを追加。これはshrinkに似ているが、削除されたbinsの内容は破棄する
        • reduce_optionreduce_commandに名称変更 (古い名前は使用できるが非推奨)
    • sumアルゴリズムに、inner binsのみを合計する省略可能な新引数を追加。ユーザーはすべてのbinsを合計するか、inner binsのみを合計するかを選択できるようになる (アンダーフローとオーバーフローは除く)
    • axis::traits
      • 異なる種類のDiscreteAxis型を区別するためにis_ordered特性とordered特性を追加。これはcategory軸とinteger軸を別々に処理するために内部で使用される
      • static_optionsget_optionsに名称変更、static_is_inclusiveis_inclusiveに名称変更 (古い名前は使用できるが非推奨)
  • 修正
    • 間違ったパスが原因でバンドルされたBoostで、ODRテストが失敗する問題を修正
    • ユーザー定義のaccumulatorで発生する可能性のあるhistogram::operator*=のバグを修正
    • indexedで末尾の次 (past the end) が計算されてしまう可能性があったバグを修正
    • 通常のヒストグラムがaccumulators::weighted_sumを使用するヒストグラムに追加された場合、accumulators::weighted_sum内の分散 (variance) が正しく計算されないバグを修正
    • -ffast-mathをつけてコンパイルするとaccumulators::sumが壊れる問題を修正
    • これまでコンパイルできなかった*flow binsのない軸をともなうalgorithm::reduceが動作するよう修正
  • その他
    • Boost.Histogramを外部APIのバックエンドとして使用する方法のドキュメントを記載
    • Boost.HistogramでカスタムのaccumulatorとBoost.Accumulatorを使用する方法のドキュメントを改善
    • 多くの小さなドキュメント改善
    • algorithm::reduceのドキュメントを改善
    • 実験的なcmakeのビルドサポートを改善
    • あらゆるところで、生のintの代わりにindex_typeを一貫して使用するようにした
    • ドキュメント内のベンチマークを更新

ICL

  • GitHub #23 コンパイルされたDateTimeライブラリへの参照を削除
  • GitHub #17 lower_less_equalupper_less_equalの前方宣言を修正
  • 細かなバグ修正

IO

  • すべてのIOS state saverをコピー不可にした (Glen Fernandes氏)
  • 引用符で囲まれた文字列を読み取るときに、入力ストリームから最初に読んだときのエラーを正しくハンドリングした (Glen Fernandes氏)
  • 区切り文字ベースの文字列結合であるostream_joinerを実装 (Glen Fernandes氏)
  • Utilityライブラリのostream_stringを、ostream_putとしてIOライブラリに移動
  • 引用符で囲まれた出力でのwidthとfillの指定を正しくハンドリングした
  • 引用符で囲まれた出力をstream bufferに直接書き込むよう最適化 (Glen Fernandes氏)
  • Glen Fernandes氏がこのライブラリのメンテナになった

LexicalCast

  • GitHub #31, GitHub #32 CI強化と壊れた標準ライブラリへのワークアラウンドを含むメンテナンス作業 (Nikita Kniazev氏に感謝)

Log

  • 新機能
    • GitHub #103 trivial loggingで使用されるデフォルトのsinkは、ロギングコアにsinkが登録されていない場合に、各ログ記録のあとに自動的に出力をフラッシュするようになった
    • core::flushは、sinkが登録されていない場合に、trivial loggingで使用されるデフォルトsinkに対してフラッシュを実行するようになった
  • バグ修正
    • GitHub #97 いくつかのsyslog APIの実装 (例としてglibc) のためにワークアラウンドを追加。これにより、openlogの呼び出しでアプリケーション識別文字列が保存されないようになる。それらの実装ではsyslog呼び出しにおいてすでに解放されたメモリにアクセスする可能性があり、未定義動作を引き起こす
    • GitHub #98 月日を指定したログローテーション (例としてrotation_at_time_point(boost::gregorian::greg_day(1))) で、静かに無視されてなにも起こらなかった問題を修正
    • ログレコードがまだ書き込まれておらず、ターゲットファイルのパターンが設定されている場合に、text_file_backend::rotate_fileが例外を送出する可能性があった問題を修正
    • ライブラリの様々なコンポーネントをstd::allocator_traitsに移植し、C++20アロケータとの互換性を改善
    • GitHub #102 MSYS2 Cygwin環境でのビルド時のコンパイルエラーを修正

Math

  • 重要 C++03のサポートを非推奨にした。2021年3月に削除する予定である。
  • 3次エルミート補間 (Cubic Hermite Interpolation) を追加
  • 変形秋間補間 (Modified Akima Interpolation, Akimaは秋間 浩氏) を追加
  • PCHIP補間 (区分的3次エルミート内挿多項式補間, Piecewise Cubic Hermite Interpolating Polynomial Interpolation) を追加
  • 5次エルミート補間 (Quintic Hermite Interpolation) を追加
  • 多くの分布にエントロピーを追加
  • 2つのend pointが等しい自明な求積法 (quadrature) のケースを許可し、さらに境界を交換できるようにした
  • 非負の範囲でcomplex型を処理するよう、exp_sinh求積法を修正
  • factorial.hpp内のコンパイラ警告を修正
  • timed pFq calculationsでboost::chronoの代わりにstd::chronoを使用するようにした
  • constexprサポートを改善するため、古いboost::mplへの多くの依存を削除

Mp11

  • mp_unique_ifを追加 (Kris Jusiak氏による貢献)
  • mp_flattenを追加
  • mp_rotate_left, mp_rotate_rightを追加 (Duncan Barber氏による貢献)
  • mp_composeを追加
  • mp_power_setを追加
  • mp_partial_sumを追加
  • mp_iterateを追加

Multi-index

  • multi_index_containerアロケータの状態を伝播するようにした
  • GitHub #29 [[swappable.requirements]]の標準仕様に従って、KeyFromValueCompareHashPredの内部オブジェクトをswapする際に、std::swapとADLによって見つかるswapで適切に選択するようにした
  • 一部のコンパイラで警告が起きていた、C++11で非推奨となったデフォルトで暗黙定義される内部的なコピーコンストラクタと代入演算子のいくつかを、提供するようにした
  • メンテナンス上の修正

Multiprecision

  • 重要 C++03のサポートを非推奨にした。2021年に削除する予定である。
  • cpp_intを大きく更新し、KaratsubaおよびCoombaの高速な乗算ルーチンを追加
  • GitHub #178 gmp_rationalからlong doubleおよび__float128への変換を修正
  • 最新のlibtomのリリースで、関数のlibtommathサポートを修正
  • 最新Intel C++ compilerでのいくつかの非互換を修正
  • 最新MSVCリリースでのconstexpr算術演算のサポートを修正

Outcome

  • 強化
    • ClangでコンパイルされたOutcomeベースのコードのパフォーマンスを大幅に改善した。以前の実装では状態ビットフィールドでClangのオプティマイザが混乱し、低品質のコード生成が行われてしまっていた。多くのコード生成の問題とは異なり、P1886 Error speed benchmarkingで示された、現実的なコードでの経験的なベンチマークで判明した
    • Outcome v2.2.0の将来的な機能として予定していたbetter_optimisationブランチ (より良い最適化)のうち安全な部分を、Outcome v2.1.3にマージした。これには新たな状態ビットフィールドの実装も含まれる。これはClangのオプティマイザを混乱させないためのものであり、Clang 9はさまざまなユースケースでGCC 9を上回るコードを生成するようになった
    • インストールできることをコミットの度にCIでテストするようにした。スタンドアロン版のOutcomeのインストール (たとえばmake install) は理想よりも頻繁に壊れるので、コミットごとにCIでテストするようにした
  • バグ修正
    • GitHub #214 新たなコンセプトを実装するコンパイラはTEの破棄性を早期にチェックしてしまうことが不満だったため、テンプレート制約を削除し、型のインスタンス化シーケンスの後半で実行されるstatic assertにフォールバックするようにした
    • GitHub #220 Undefined Behaviour Sanitiserがいくつかの実験的なOutcome機能のユースケースで誤検知してしまうため、ワークアラウンドを入れた

PolyCollection

  • boost::poly_collection::for_each内での潜在的なムーブの警告を修正
  • 状態を伝播しない非等値なアロケータにおける、アロケータ拡張のムーブ構築とムーブ代入で、要素がムーブではなくコピーされてしまう問題を修正
  • GCC 4.8の同梱される古いバージョンのlibstdc++-v3において、アロケータ拡張のムーブ構築が、アロケータ拡張のコピー構築にdecayされないようにした (Clangでも使用できる)

Stacktrace

  • GitHub #55, GitHub #47 PDBの配布についてドキュメントに記載 (情報提供してくれたemptyVoid氏とRoger Orr氏、テストに協力してくれたzlojvavan氏に感謝)
  • msvc-9のビルドを修正
  • テスト修正 (GitHub #86)、typo修正 (GitHub #84)、CI改善と強化、インスペクトツールの修正を含むメンテナンス作業

Test

  • Boost.Test v3.13
  • 新機能

    • BOOST_TEST式に、許容誤差、ユーザーメッセージ、コレクション比較修飾を指定できるようにした
      std::vector<double> v1 = f();
      std::vector<double> v2{1.1, 1.19};
      BOOST_TEST(v1 == v2, boost::test_tools::tolerance( 1e-3 ) << "comparison to ground truth failed" << boost::test_tools::per_element());
      
  • バグ修正と機能リクエスト

    • GitHub #173, GitHub #187 浮動小数点数の値をもつコレクション比較での許容誤差 (tolerance)
    • GitHub #179 いくつかのアーキテクチャでtest_tools-testが失敗していた
    • GitHub #220 CUDAのnvccをサポート
    • GitHub #221 Coverityによって発見された小さなセキュリティ問題 (umask) を修正
    • GitHub #235 /included/を使用するとGCCの-Wattributes警告を抑制できない
    • GitHub #237 clang-clで、仮想関数を使用したが仮想デストラクタを持っていない警告が出力される
    • GitHub #241 浮動小数点数型に==もしくは!=を使用したことによる警告を修正 (-Wfloat-equal)
    • GitHub #245 Coverityテストで見つかった問題を修正
    • GitHub #246 BOOST_HEADER_DEPRECATEDマクロの使い方が間違っていた
    • GitHub #251 HRFとJUnitの両方が有効な場合に、コンテキストメッセージが常に表示されてしまっていた
    • GitHub #253 テストをスキップしたときにBOOST_AUTO_TEST_CASE_TEMPLATEによって不正なXMLログが出力されていた
    • GitHub #254 Windowsでコンソールの色がもとに戻らない
    • GitHub #263 複数の翻訳単位をともなうヘッダオンリーモードでBOOST_TEST_NO_LIBを指定することが要求されてしまう
    • GitHub #41 MSVCのバージョンによってvirtualキーワードを適切に有効化
    • GitHub #114 MSVCでの到達できないパスの警告を抑制
    • GitHub #239 unit_test_main.ippでの未使用変数の警告を修正
    • GitHub #247 移植性向上のため__linuxの代わりに__linux__を使用するようにした。__linuxはいくつかのアーキテクチャで定義されない
    • GitHub #252 wchar_tによるstd::basic_ostream::operator<<でのコンパイルエラーを修正
    • GitHub #259 グローバル名前空間のbindプレースホルダーの使用を回避
    • GitHub #265 root_test_unit_idでの未使用変数の警告を抑制
    • Trac #11107, Trac #12072 MSVCでprotectedなデストラクタが非仮想であるという警告が大量に出力される

ThrowException

  • throw_exception関数にboost::source_locationオブジェクトをとるオーバーロードを追加
    • 注 : 例外を無効にしてBOOST_THROW_EXCEPTIONを使用するプロジェクトでは、このオーバーロードが必要になる

TTI

  • g++とvc++の最近のバージョンでの、関数テンプレートのイントロスペクションを追加。Clangのすべてのバージョンと同様。vc++の14.0 (2015) より前、g++ 4.8より前のバージョンでは失敗する可能性がある
  • struct / class, enum, union型の要素に対するイントロスペクションを追加。これは一般的な型に対するイントロスペクションよりもきめ細かなイントロスペクションに使用できる

TypeIndex

  • インスペクトツールによるCIインテグレーションを含むメンテナンス作業

Utility

  • このライブラリのostream_stringを、ostream_putとしてIOライブラリに移動

Variant

  • GitHub #74 未使用のインクルードを削除 (Nikita Kniazev氏に感謝)
  • GitHub #77 ゼロをヌルポインタ定数として使用した警告を修正 (Bart Siwek氏に感謝)
  • typo修正を含むメンテナンス作業

Variant2

  • std::hash, boost::hashのサポートを追加
  • T...のすべての型がtrivialの場合にvariant<T...>はtrivialとなる
    • これにより、レジスタ内の関数に渡したり、そこから返したりするパフォーマンスが改善する

WinAPI

  • boost/detail/winapi内のヘッダを非推奨にした。将来のリリースで削除される
  • GitHub #81 Boost.WinAPIのヘッダがwinerror.hをインクルードしないようにした。boost/winapi/error_codes.hppをインクルードすることでWindowsのエラーコードを取得できる

Build

  • B2のリリース4.2.0を含める
  • 警告 : B2の4.0.0以降は、bootstrapを実行するためにC++11コンパイラが必要となる。これはB2自身をビルドするために必要なことであり、Boostをビルドするために使用するわけではない

テスト済みコンパイラ

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

  • Linux:
    • Clang: 3.0, 4.0.1, 6.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
    • 6.0.1, 7.0.0, 8.0.0
    • Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
    • GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
    • GCC, C++0x: 4.4.7
    • GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
    • GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
    • GCC, C++17: 7.3.0, 8.0.1
    • Intel, C++14: 18.0
  • OS X:
    • Apple Clang: 9.0.0, 9.1.0, 10.0.0
    • Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
    • Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
    • Apple Clang, C++17: 9.1.0, 10.0.0
    • Apple Clang, C++1z: 9.0.0
    • Apple Clang, C++2a: 10.0.0
  • Windows:
    • GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
    • GCC, C++0x: 4.6.4
    • GCC, C++11: 4.7.3, 4.8.1, 4.9.3
    • GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
    • GCC, C++17: 7.1.0, 7.2.0, 7.3.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
  • FreeBSD:
    • Clang: 4.0.0
    • Clang, C++11: 4.0.0
    • Clang, C++14: 4.0.0
    • Clang, C++1z: 4.0.0

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

  • Linux:
    • Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0
    • Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
    • GCC, C++0x: 4.4.7
    • GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
    • GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
    • GCC, C++17: 7.3.0, 8.0.1
    • Intel, C++14: 18.0
  • OS X:
    • Apple Clang: 9.0.0, 9.1.0, 10.0.0
    • Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
    • Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
    • Apple Clang, C++17: 9.1.0, 10.0.0
    • Apple Clang, C++1z: 9.0.0
    • Apple Clang, C++2a: 10.0.0
  • Windows:
    • GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
    • GCC, C++0x: 4.6.4
    • GCC, C++11: 4.7.3, 4.8.1, 4.9.3
    • GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
    • GCC, C++17: 7.1.0, 7.2.0, 7.3.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
  • FreeBSD:
    • Clang: 4.0.0
    • Clang, C++11: 4.0.0
    • Clang, C++14: 4.0.0
    • Clang, C++1z: 4.0.0

翻訳

Akira Takahashi