本家リリースノート:
- 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_OPERATOR
BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR
BOOST_PARAMETER_NO_SPEC_FUNCTION
BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION
BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION
BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR
BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR
BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR
BOOST_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