本家リリースノート:
- https://github.com/boostorg/website/blob/master/feed/history/boost_1_71_0.qbk
- http://www.boost.org/users/history/version_1_71_0.html
リポジトリは以下:
リポジトリからのビルド方法は、egtraさんのブログを参照:
新ライブラリ
- Variant2
- valuelessにならず、強い例外安全性をもつ
std::variantの実装。作者Peter Dimov
- valuelessにならず、強い例外安全性をもつ
更新ライブラリ
- Align
- Any
- Asio
- Beast
- Circular Buffer
- Container
- Context
- Conversion
- Core
- Dynamic Bitset
- Endian
- Fiber
- Filesystem
- Flyweight
- Geometry
- Histogram
- Interprocess
- Intrusive
- IoStreams
- Lexical Cast
- Log
- Math
- Metaparse
- Move
- Multi Array
- Multi-index
- Outcome
- Parameter
- PolyCollection
- PtrContainer
- SmartPtr
- Stacktrace
- Test
- Utility
- Uuid
- Variant
- YAP
Align
align_upとalign_downの整数版を、全ての整数型向けにサポートaligned_allocatorの実装を改善し、void型への特殊化を要求しないようにしたaligned_allocatorにpropagate_on_container_move_assignmentとis_always_equalを定義
Any
boost::anyのデフォルト構築を静的初期化できるようにした- ムーブセマンティクスをもたないコンパイラでの、代入のパフォーマンス低下を修正
- メンテナンス上の修正
Asio
- 完了ハンドラがディスパッチされる際の不要なムーブ構築を排除したことにより、パフォーマンスがわずかに改善した
connect()フリー関数の実装でcaseのフォールスルーにアノテーションをつけたことにより、コンパイラの警告をなくした- ユーザー定義シーケンス向けの
is_*_buffer_sequence検出トレイトを修正 CancelIoExエントリポイントを取得する際の互換性のないポインタキャストについての、Windows固有の警告を修正- Windowsでシリアルポートを開く際のデフォルトを、自動で設定するよう変更した
- シリアルポートの
get_option()メンバ関数をconstに変更 - WinRTストリーム指向ソケットバックエンドの
shutdown()関数の、name hiding問題を修正 is_dynamic_bufferのドキュメントの、小さな修正を適用- Haiku OSのいくつかのサポートを追加
- wolfSSL互換を追加
- ClangでのCoroutine TSのサポートを、C++17以降を要求するよう変更
- チュートリアルのDoxygen生成の問題を修正
- サンプルプログラムがドキュメントに正しく組み込まれていることを確認
Beast
- このバージョンは主にバグ修正とパフォーマンス改善で構成される
BOOST_BEAST_SEPARATE_COMPILATIONを定義した際にコンパイル時間を減らすため、分割コンパイルのための多くの作業を行った- Beastを使用しているユーザーとユーザー企業を知りたい。GitHub Wikiページ「Companies and Individuals Using Beast」にリストアップしている
- 完全な変更リストはRelease Noteページを参照
Circular Buffer
- Doxygenで生成されたリファレンスドキュメントに内部メンバが出力されていたのを修正 (Glen Fernandes氏)
addとsubに対するUBSanの警告を修正is_uninitializedのチェックが間違っていた問題を修正 (Niklas Fejes氏)
Container
- バグ修正
- GitHub #47
small_vectorにアライメント仕様を追加 - GitHub #88 自己ムーブ代入に関するC++17のMoveAssignable要件を実装 (自己ムーブ代入したあともrhs側はvalidな状態でなければならない)
- GitHub #107
resource_adaptorでアライメント指定が無視される問題を修正 - GitHub #109
-fsanitize=integerで見つかったcopy_move_algo.hppでの整数オーバーフローを修正 - GitHub #110 GCC 9でnew_allocator.hpp内の暗黙定義されないコピー代入の警告を修正
- GitHub #112 msvc10..12で
vector::resize()がコンパイルエラーになる問題を修正。「data is not a member ofboost::detail::aligned_storage」という内容のエラーが起きていた - GitHub #114
small_vectorのnoexcept仕様を修正 - GitHub #116 MSVC + boost 1.70でwindows.hがすでにインクルードされている場合にコンパイルエラーになる問題を修正 (detail/thread_mutex.hpp)
- GitHub #117 ヒント付きの
flat_map/map::insert_or_assignの戻り値型が間違っていた - GitHub #118
flat_tree_merge_unique内でuniqueでないinplace_set_differenceが使用されていた問題と、insert_unique内でのイテレータ無効化を修正 - GitHub #122
has_trivial_destructor_after_moveを修正 - GitHub #123 異種混合探索 (heterogeneous lookup) において、
equal_rangeが1より大きい範囲を返せるようにした
- GitHub #47
dequeに、ブロックサイズ・ブロックバイト数を指定できるようにするカスタマイズ機能としてdeque_optionsを追加static_vectorに、オーバーフロー時に例外を発生させる、およびアライメントを指定できるようにするカスタマイズ機能としてstatic_vector_optionsを追加small_vectorに、伸長ポリシー (growth factor) とアライメントを指定できるようにするカスタマイズ機能としてsmall_vector_optionsを追加
Context
- RISC-V LP64Dのサポートを追加
- GitHub #72 ppc64 ELFv2のABI違反を修正
- GitHub #99 ucontextの作成に失敗した際にスタックをクリーンアップするよう修正
Conversion
- メンテナンス上の修正
Core
boost/core/alloc_construct.hppヘッダを追加。このヘッダは、アロケータを考慮したオブジェクトと配列の例外安全な構築と破棄の機能を提供する (Glen Fernandes氏)boost/core/first_scalar.hppヘッダを追加。このヘッダは、配列の最初のスカラ要素へのポインタを取得する関数first_scalar()を提供する。型T*が与えられると、remove_all_extents_t<T>*型のポインタが返る (Glen Fernandes氏)boost/core/noinit_adaptor.hppヘッダを追加。このヘッダは、noinit_adaptorクラステンプレートを提供する。このクラスはconstruct(ptr)呼び出しで配置newを通してデフォルト初期化を行い、destroy(ptr)呼び出しでvalue_typeのデストラクタを直接呼び出す (Glen Fernandes氏)boost/core/default_allocator.hppヘッダを追加。このヘッダは、default_allocatorクラステンプレートを提供する。このクラスはC++20のstd::allocatorに似た最小のデフォルトアロケータとして機能し、例外を無効化する設定を持ち、関連名前空間としてstdを持たない。このアロケータはメモリ割り当てにoperator newとoperator deleteを使用する (Glen Fernandes氏)- GitHub #59
boost/core/uncaught_exceptions.hppヘッダに、libc++ / libc++abiライブラリを使用した際のQNX SDP 7.0との互換性を改善するワークアラウンドを追加 (Andrey Semashev氏) boost/detail/sp_typeinfo.hppヘッダを非推奨化し、将来のリリースで削除する予定となった。代わりにboost/core/typeinfo.hppを使用すること (Peter Dimov氏)
Dynamic Bitset
- GitHub #38 MSVCでハードウェア支援のあるpopcountを有効にした
- GitHub #45
boost::hashとstd::hashのサポートを追加 - GitHub #48 デフォルトコンストラクタを非explicitにし、コピー初期化構文を許可
Endian
- 値型テンプレートパラメータの要件を明確にした
floatとdoubleのサポートを追加endian_loadとendian_storeを追加endian_reverseを、非boolの全ての整数型を正しくサポートするよう更新- 非推奨の名前を、
endian.hppに移動
Fiber
shared_workのドキュメントを更新
Filesystem
- directory iteratorのインクリメント時に
readdir_rが使用されていた場合に、間違ったerror_codeが返る問題を修正 - GitHub #110
pathの右辺値版operator/の戻り値型を、右辺値参照ではなく右辺値を返すよう修正。これによるぶら下がり参照 (dangling reference) の問題が起きていた - GitHub #24 Windows CEとの互換性を向上
- GitHub #106 CMakeを小さくサポート
Flyweight
- メンテナンス上の修正
Geometry
- 改善
- GitHub #568
matrix_transformerにmatrix_typeをとるコンストラクタを追加 - GitHub #605 さまざまなアルゴリズムの座標系ハンドリングを改善
- 集合と関係の操作の堅牢性に関するさまざまな改善
- GitHub #568
- 解決した問題
- GitHub #596
boost::geometry::bufferがスパイク付きの(multi)polygonを生成する問題を修正
- GitHub #596
- バグ修正
- GitHub #595 geographic座標系でのpoint-segment間のdistance計算が不正確だった問題を修正
- さまざまなコンパイラ警告を修正
Histogram
- 新機能
- スレッドセーフなストレージとスレッドセーフな新たなaccumulatorをサポート
- 例外とRTTIを無効化したコンパイルをサポート (10-20%ほどパフォーマンスがよくなる) (Glen Fernandes氏)
- 1D・2Dヒストグラムのパフォーマンスを改善
boost::histogram::indexedがinput iterator rangeではなくforward iterator rangeを返すようにしたboost::histogram::indexed_range::accessorをコピー不可にしてセル値 (cell value) への参照のように振る舞うようにし、C++標準ライブラリのより多くのアルゴリズムで動作するようにしたboost::histogram::algorithm::reduceにスライス・オプションを追加し、オプションを合成できるようにしたboost::histogram::algorithm::projectが静的ヒストグラムに実行時インデックス列を受けられるようにした
- バグ修正
boost::histogram::algorithm::reduceがreduction supportを必要とせず、いくつかの軸型 (axis type) をもつヒストグラムに対して動作するようにしたboost::histogram::axis::traits::updateがboost::histogram::axis::variantに対して正しく動作するようにした
- その他
- テストカバレッジを100%にした
- 依存するBoostライブラリを減らした
- ドキュメントとサンプルコードを改善
- 全ての組み込み軸型でムーブが例外を送出しないことを保証
- 高い警告レベルでもコンパイルで警告がでないようにした
- 詳細はChangelogを参照
Interprocess
- GitHub #85 整数の精度が落ちる警告を修正
- GitHub #86 カンマ演算子の使い方が間違っている可能性がある警告を修正
Intrusive
- GitHub #42 ドキュメントがtreap
priority_of_valueの変更を説明していなかった - GitHub #43
BOOST_INTRUSIVE_VARIADIC_TEMPLATESが有効の場合のテストを修正 - GitHub #45 MSVC-12で内部コンパイラエラーを回避するために可変引数テンプレートを無効化
IoStreams
- GitHub #87 マルチストリーム・ファイルの処理を修正
- GitHub #95 LZMA圧縮のマルチスレッド・サポートを追加
Lexical Cast
- GitHub #25
boost::filesystem::pathの変換を行うテストを追加 - メンテナンス上の修正
- GitHub #28 のテスト失敗修正を含む
Log
- 新機能
basic_formatting_ostreamでのC++17std::string_viewのサポートを改善。文字コード変換の出力としてstring viewが使用できるようになったauto_newlineフォーマッタとストリーム・マニピュレータを追加。改行の重複を避けながら、フォーマットされた出力を常に改行でおわらせるよう使用できる- 出力ストリームにおいて、text file / text multi-file sink backendに、フォーマットされた全てのログレコードの末尾に改行を追加する動作を設定できるサポートを追加した。バックエンド・コンストラクタの名前付きパラメータ
auto_newline_modeを使用するか、sink backendのset_auto_newline_mode()メンバ関数を呼ぶこと - 注:sink backendに末尾改行を追加するデフォルトの動作は、Boost.Logの以前のリリースからわずかに変更になった。バックエンドは、フォーマットされた文字列に末尾改行がない場合にのみ改行を追加するようになった。以前のリリースでは、改行は無条件に追加されていた
- GitHub #63 任意の関数オブジェクトを渡せる名前付きパラメータ
filterとformatを追加。これはsinkのコンストラクタとsinkを初期化する便利関数で使用できる。例として、C++11のラムダ式をこれらのパラメータで直接指定できるようになった - filterとformatterのパーサーで使用されるデフォルトのファクトリに、
boost::log::trivial::severity_level型の重要度レベルを設定できるようにした。フィルタの場合、属性は"Severity"という名前に限定される
- バグ修正
- GitHub #78 text file sink backendのファイル・スキャニングにおいて、rotateするファイル名のコンポーネントの解析が間違っていた問題を修正した。ファイル名パターンがプレースホルダでおわる場合 (たとえばファイルカウンタ)、
scan_for_files()メンバ関数はターゲット・ストレージからそのパターンに一致するファイルを見つけられず、管理されないままになっていた。そのようなファイルはターゲット・ストレージから削除されず、残ってしまっていた - GitHub #84
basic_formatting_ostreamとbasic_record_ostreamがユーザー定義型へのポインタに対するストリーム演算子のオーバーロードを定義できるようにした
- GitHub #78 text file sink backendのファイル・スキャニングにおいて、rotateするファイル名のコンポーネントの解析が間違っていた問題を修正した。ファイル名パターンがプレースホルダでおわる場合 (たとえばファイルカウンタ)、
- より詳細な変更はChangelogを参照
Math
- 新機能
- Catmull-Rom interpolatorがC++11で動作するようにした
- カーディナル2次B-スプライン補間 (Cardinal quadratic B-spline interpolation)
- 楕円積分のドメイン拡張
sin_piとcos_piのパフォーマンス改善- フォワードモードの自動微分
- ベクトル値の重心有理補間 (barycentric rational interpolation)
- フーリエ積分 (Fourier integrals) の評価に使用するOoura法 (Ooura's method)
- バグ修正
- Multiprecisionとの互換性を修正
- レアなアーキテクチャでのLambert-Wを修正
Metaparse
- 新機能
- 以下の機能をC++11の可変引数テンプレートに対応した:
sequence,one_of_c,one_of,repeated_one_of,repeated_one_of1,one_char_except_c,one_char_except
- 以下の機能をC++11の可変引数テンプレートに対応した:
- バグ修正
BOOST_METAPARSE_STRINGが範囲外の文字をテンプレート引数として使用できなかった問題を修正- C++14において
any_of_c<>が空配列を作成しなかった問題を修正
Move
- GitHub #26
adaptive_sort_combine_blocks内の最後のイテレーションにおいて、イテレータに対する不正なインクリメント・デクリメントが行われていた問題を修正
Multi Array
- Boost.Coreの
alloc_construct_n、alloc_destroy_nを使用することでアロケータサポートを簡略化 (Glen Fernandes)
Multi-index
- GitHub #24 参照修飾とCV修飾の組み合わせをサポートするため、
mem_funとconst_mem_funのバリエーションを追加cv_mem_fun(R mf() const volatile)cref_mem_fun(R mf() const&)cvref_mem_fun(R mf() const volatile&)volatile_mem_fun(R mf() volatile)ref_mem_fun(R mf() &)vref_mem_fun(R mf() volatile&)
- GitHub #24
keyがnoexcept付き関数を正しくハンドリングできるようにした- C++17で例外仕様が型の一部になった影響
- C++17 例外仕様を型システムの一部にする
Outcome
- 機能拡張
- GitHub #184 Boostのリリースマネージャからの要求に従い、
version.hppとrevision.hppをdetailディレクトリ以下に移動した。それと、不足していたソースコード中のライセンス表記を追加 - GitHub #185 このIssueで報告された、
std::launder()を使わなければ未定義動作になるケースについてFAQを追加 - GitHub #189
OUTCOME_TRYの実装をリファクタし、外からの入力を受け付けられるカスタマイゼーション・ポイントであることをより明確にした。std::experimental::expected<T, E>の特殊化は不要になったので削除した。カスタマイゼーション・ポイントについて以前はADLによって検知するとドキュメントに書いていたが、実際はそうではなかったので説明を修正した。外部入力をどのように追加すればよいかを記載した - GitHub #183 Boost用に、motivationとplug_error_codeを分けた
- GitHub #184 Boostのリリースマネージャからの要求に従い、
- バグ修正
OUTCOME_VERSION_MINORを1に更新した- GitHub #181 ドキュメント化されているにも関わらず、Outcomeがswap操作の強い保証を実装していなかったので修正した
- GitHub #190 Boost版のテストスイートがリリースディストリビューションで実行できなかった問題を修正
- GitHub #182
trait::is_exception_ptr_available<T>が常にtrueになっていたため、診断メッセージが表示されず、全てをmake_exception_ptr()に渡そうとしていた問題を修正 - GitHub #192 スタンドアローン版とBoost版を組み合わせた場合、翻訳単位に
std::basic_outcome_failure_exception_from_error()が2回定義されてしまっていたのを修正
Parameter
- GitHub #15 キーワード生成マクロ
BOOST_PARAMETER_TEMPLATE_KEYWORDを更新。関数をパラメータとして受け付けられるようにした - GitHub #28 Boost Accumulators Libraryからキーワード生成マクロ
BOOST_PARAMETER_NESTED_KEYWORDを移動した - GitHub #16
std::reference_wrapperとstd::ref()のサポートを追加 - GitHub #18
boost::parameter::required、boost::parameter::optional、boost::parameter::deducedメタ関数の定義を、boost/parameterディレクトリ内に移動 - GitHub #20 Boost.Parameterを有効にした関数呼び出し演算子を生成できるようにした。
<boost/parameter/preprocessor.hpp>に、コード生成マクロBOOST_PARAMETER_FUNCTION_CALL_OPERATORとBOOST_PARAMETER_CONST_FUNCTION_CALL_OPERATORを追加 - GitHub #21, GitHub #23 パラメータのカテゴリ修飾として"forward"、"consume"、"move_from"を追加 (現在の修飾は"in"、"out"、"in_out")
- 以下の記事がベースとなっている: C++ Core Guidelines: The Rules for in, out, in-out, consume, and forward Function Parameter
- このカテゴリ修飾の追加にともなって、新たな構文を2つ追加:
BOOST_PARAMETER_NAME((object-name), namespace-name) qualifier(tag-name))BOOST_PARAMETER_NAME(qualifier(name))(BOOST_PARAMETER_NAME(consume(my_param)))BOOST_PARAMETER_NAMEを正しく使用した既存コードは影響を受けないはずなので、破壊的変更はない- 使い方が変更になった理由は、引数を合成したBoost.Parameterが有効になった関数とコンストラクタにパラメータ・カテゴリの制約を適用するため
- GitHub #23, GitHub #26 完全転送のサポートを追加。その結果、
parameter::parameters::operator()が非constの右辺値を受け取れるようになった。これによるいい影響として、完全転送をサポートするコンパイラではBOOST_PARAMETER_MAX_ARITYの制約に縛られなくなる。ユーザーはマクロBOOST_PARAMETER_HAS_PERFECT_FORWARDINGで完全転送が有効かを確認でき、マクロBOOST_PARAMETER_DISABLE_PERFECT_FORWARDINGによって手動で完全転送のサポートを無効化できる - 以下のメタ関数を追加:
- GitHub #27
boost::parameter::is_argument_pack - GitHub #52
boost::parameter::are_tagged_arguments - GitHub #75
boost::parameter::result_of::compose
- GitHub #27
- GitHub #52 可変引数テンプレート関数
boost::parameter::compose()を追加。これは名前付きパラメータをとって引数パックにして返す。- GitHub #61 完全転送をサポートしないコンパイラの場合、設定マクロ
BOOST_PARAMETER_COMPOSE_MAX_ARITYがboost::parameter::compose()がとれる引数の最大数になる
- GitHub #61 完全転送をサポートしないコンパイラの場合、設定マクロ
- GitHub #52 以下のコード生成マクロを追加:
BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATORBOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATORBOOST_PARAMETER_NO_SPEC_FUNCTIONBOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTIONBOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTIONBOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATORBOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATORBOOST_PARAMETER_NO_SPEC_CONSTRUCTORBOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR
- GitHub #47, GitHub #66, GitHub #70 Boost.MP11のサポートを追加。ユーザーはマクロ
BOOST_PARAMETER_CAN_USE_MP11を使用してBoost.MP11がサポートされているかを確認できる。マクロBOOST_PARAMETER_DISABLE_MP11_USAGEによって手動でBoost.MP11のサポートを無効化できる - GitHub #73 SFINAEによるパラメータ依存の戻り値型のサポートを改善
PolyCollection
- メンテナンス上の修正
PtrContainer
- GitHub #24 1.66.0から導入されたレグレッションを修正
SmartPtr
-
GitHub #67
weak_ptrクラスに、エイリアス・コンストラクタ (aliasing constructors) を追加
template<class Y> weak_ptr(shared_ptr<Y> const & r, element_type * p) noexcept template<class Y> weak_ptr(weak_ptr<Y> const & r, element_type * p) noexcept template<class Y> weak_ptr(weak_ptr<Y> && r, element_type * p)- これは、
weak_from_this()を使用する際に必要となる。
return boost::weak_ptr<T>(p->weak_from_this(), p);- これらのコンストラクタがない場合は、以下のようなコードとなる:
return boost::weak_ptr<T>( boost::static_pointer_cast<T>( p->weak_from_this().lock())); - これは、
-
weak_ptr<T>::empty()を追加 enable_shared_from基本クラス、shared_from()、weak_from()関数を追加enable_shared_fromは、enable_shared_from_thisと違って非テンプレートなクラスである。このクラスを基底クラスとすることで、thisを生ポインタ、shared_ptr、weak_ptrとして取得する機能が使用できるようになる。新たに書くコードでは、enable_shared_from_thisよりもこちらを使用することを推奨するclass Y: public boost::enable_shared_from { public: boost::shared_ptr<Y> f() { return boost::shared_from(this); } };
Stacktrace
- C++98モードのthread sanitizer buildで報告された
name()、source_location()、source_line()の出力を修正 - GitHub #78 MSVCでの
name()とsource_location()の長い文字列出力を修正 - メンテナンス上の修正
Test
- Boost.Test v3.11
- 詳細な変更はChang Logを参照
- 破壊的変更
- 非推奨になっている非常に古いヘッダーを使用した場合に、非推奨の警告を表示するようにした。このような警告が表示された場合は、指示に従ってほしい。これらのヘッダーは将来のリリースで削除される
- 新機能
BOOST_TESTマクロを抽象型の比較に使用できるようにした
- バグ修正とPull Request
- GitHub #209
BOOST_TEST_CHECKで抽象型を比較できない - GitHub #218 テストスイートのデフォルトファイル名がドキュメントと違っていた問題を修正
- GitHub #219 未使用変数の警告を修正
- GitHub #224 非推奨ヘッダーに
BOOST_HEADER_DEPRECATEDを追加
- GitHub #209
Utility
- あらゆる種類の文字列を出力ストリームに最適に書き込めるユーティリティ関数として、
ostream_stringをboost/utility/ostream_string.hppに実装した。この関数は[ostream.formatted.reqmts]の要件を満たす (Glen Fernandes氏) basic_string_viewとbasic_string_refのストリーム出力演算子を、rdbufストリームバッファに直接書き込むよう最適化 (Glen Fernandes氏)
Uuid
- 破壊的変更 : GitHub #109 MD5ベースのUUID生成が、全てのエンディアンシステムで同一となるよう修正した。1.66.0から1.70.0までの動作と互換性を保ちたい場合は、
BOOST_UUID_COMPAT_PRE_1_71_MD5をdefineすること。この修正は、SHA1ベースのデフォルトのUUID生成には影響しない
Variant
- GitHub #68 非const参照の
variantを渡したときのboost::apply_visitorのコンパイルエラーを修正 - GitHub #49
std::hashのサポートを追加。この定義を避ける場合はBOOST_VARIANT_DO_NOT_SPECIALIZE_STD_HASHマクロをdefineすること - GitHub #63、GitHub #66 バイナリサイズとパフォーマンスの小さな最適化を追加 (Nikita Kniazev氏)
- GitHub #64 (Nikita Kniazev氏)、GitHub #67 (Hans Dembinski氏)を含むメンテナンス上の修正
YAP
- YAP式を自己評価 (self evaluating) する方法を示す例を追加
テスト済みコンパイラ
主要なテストコンパイラ:
- 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