本家リリースノート:
- https://github.com/boostorg/website/blob/master/feed/history/boost_1_73_0.qbk
- http://www.boost.org/users/history/version_1_73_0.html
リポジトリは以下:
リポジトリからのビルド方法は、egtraさんのブログを参照:
既知の問題
- Boost.Outcome
- Boost.Beast
新ライブラリ
- Nowide
- Windowsで標準ライブラリと組み合わせて使用するUTF-8 API (作者Artyom Beilis)
- StaticString
- コンパイル時の固定キャパシティと連続した埋め込みストレージをもつ、動的なサイズ変更可能な文字列
更新ライブラリ
- Align
- Any
- Asio
- Assert
- Atomic
- Beast
- Context
- Conversion
- DateTime
- DLL
- DynamicBitset
- Flyweight
- Geometry
- GIL
- Histogram
- ICL
- IO
- LexicalCast
- Log
- Math
- Mp11
- Multi-index
- Multiprecision
- Outcome
- PolyCollection
- Stacktrace
- Test
- ThrowException
- TTI
- TypeIndex
- Utility
- Variant
- Variant2
- WinAPI
更新ツール
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
の内部ストレージより高い要件の場合に違いが生じる- 破壊的変更
atomic
とatomic_ref
で使用される値型T
の要件を表明する静的アサートを追加。これにより、不正な型をアトミックに使用することを禁止する - 内部のロックプールの実装を改善。プールをより大きくし、ロックの選択にはアトミックオブジェクトのアライメントを考慮するようにした。これにより、スレッド競合 (thread contention) の可能性が減る
- 8ビットと16ビットの引数に対する
bit_test_and_*
操作で生成される不正なx86コードを修正。他のアーキテクチャには影響しない value_type
のアライメント要件がatomic
の内部ストレージより小さい場合に、compare_exchange_*
操作がアライメントされていないメモリアクセスをしてしまう可能性があったのを修正- 破壊的変更
boost/atomic/atomic.hpp
がboost/atomic/atomic_flag.hpp
とboost/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_fit
をnoexcept
にした- eraseフィールドを修正
- コンパイル設定のドキュメントを修正
- strandを使用する例を正した
File:read
でのend-of-fileの動作をドキュメントで明確にしたfile_body
がeofの読み込み時にshort_read
を返すようにした- Win32での
file_body
のバグを修正 ostream_buffer
がDynamicBuffer_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氏に感謝)
- GitHub #650
- 解決したIssue
- GitHub #657
EPSG:3785
の定義が間違っていたのを修正
- GitHub #657
- バグ修正
- 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 #457
- 変更
- 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_IMAGES
とBOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
を削除し、代わりにテストターゲットがビルドされると、すべてのテストケースが無条件にビルドされる
- GitHub #459, GitHub #464 GIL内で使用するテストフレームワークをBoost.TestからBoost.LightweightTestに置き換えた。それにともない、
- 修正
- GitHub #433 I/O拡張オブジェクトの破棄中に
longjump
の相互作用を回避 - GitHub #429
image
クラスのコンストラクタでのalignment
パラメータにデフォルト値が抜けていた - GitHub #414 破損した (corrupted) PNGファイルを読み込んだときにセグメンテーション違反が起きる問題を修正
- GitHub #409 I/O拡張の古いI/O v1インタフェースの、戻り値の不正な初期化を修正
- GitHub #433 I/O拡張オブジェクトの破棄中に
- 謝辞
- Samuel Debionne, Thiago Henrique Hüpner, Pranam Lashkari, Mateusz Loskot, Debabrata Mandal, Olzhas Zhumabek氏らに感謝
Histogram
- 新機能
- アキュムレータ
count
accumulatorを追加。これは各セルに任意のメタデータを持たせるために使用できる- 他のaccumulatorとの一貫性のために
sum
にvalue()
メンバ関数を追加
- アルゴリズム
reduce
- 位置コマンド (positional commands) をサポート
slice
コマンドがcategory
軸をサポートcrop
コマンドを追加。これはshrink
に似ているが、削除されたbinsの内容は破棄するreduce_option
をreduce_command
に名称変更 (古い名前は使用できるが非推奨)
sum
アルゴリズムに、inner binsのみを合計する省略可能な新引数を追加。ユーザーはすべてのbinsを合計するか、inner binsのみを合計するかを選択できるようになる (アンダーフローとオーバーフローは除く)axis::traits
- 異なる種類の
DiscreteAxis
型を区別するためにis_ordered
特性とordered
特性を追加。これはcategory
軸とinteger
軸を別々に処理するために内部で使用される static_options
をget_options
に名称変更、static_is_inclusive
をis_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_equal
とupper_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環境でのビルド時のコンパイルエラーを修正
- GitHub #97 いくつかのsyslog APIの実装 (例としてglibc) のためにワークアラウンドを追加。これにより、
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]]
の標準仕様に従って、KeyFromValue
、Compare
、Hash
、Pred
の内部オブジェクトを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 新たなコンセプトを実装するコンパイラは
T
とE
の破棄性を早期にチェックしてしまうことが不満だったため、テンプレート制約を削除し、型のインスタンス化シーケンスの後半で実行されるstatic assertにフォールバックするようにした - GitHub #220 Undefined Behaviour Sanitiserがいくつかの実験的なOutcome機能のユースケースで誤検知してしまうため、ワークアラウンドを入れた
- GitHub #214 新たなコンセプトを実装するコンパイラは
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