本家リリースノート:
- https://github.com/boostorg/website/blob/master/feed/history/boost_1_72_0.qbk
- http://www.boost.org/users/history/version_1_72_0.html
リポジトリは以下:
リポジトリからのビルド方法は、egtraさんのブログを参照:
更新ライブラリ
- Asio
- Atomic
- Beast
- CircularBuffer
- Context
- Endian
- Filesystem
- Functional/Factory
- Geometry
- GIL
- Histogram
- Log
- Math
- MPI
- Multiprecision
- Outcome
- PolyCollection
- Preprocessor
- Smart Pointers
- Test
- VMD
Asio
async_initiateヘルパ関数を、C++11以降向けに自動的に戻り値型を推論するよう変更した- C++14向けに、全ての非同期操作で自動的に戻り値型を推論するよう変更した。これにより、完了トークンの実装によって、型消去なしで非同期操作の初期化を、初期化関数に組み込むことができる。
- 戻り値型を推論する完了トークンをサポートするのがC++14以降であることに注意。C++11以前の場合、完了トークンの
async_result特殊化は、入れ子型result_typeを提供する必要がある
- 戻り値型を推論する完了トークンをサポートするのがC++14以降であることに注意。C++11以前の場合、完了トークンの
async_initiateにコンセプトのサポートを導入したcompletion_signature<T>:TがR(Args...)のシグニチャ形式であることをチェックcompletion_handler_for<T, Signature>:Tが指定されたシグニチャの完了ハンドラを使用できるかをチェックcompletion_token_for<T, Signature>:Tがasync_initiateと指定されたシグニチャで使用できる完了トークンかをチェック- コンセプトのないC++での後方互換性のために、以下のマクロを提供する。
BOOST_ASIO_COMPLETION_SIGNATURE、BOOST_ASIO_COMPLETION_HANDLER_FOR、BOOST_ASIO_COMPLETION_TOKEN_FOR。これらのマクロは、コンセプトのサポートがない環境でtypenameに展開される
-
全てのI/Oオブジェクト型に、入れ子テンプレート型
rebind_executorを追加。これは以下のように使用する:
using my_socket_type = tcp::socket::rebind_executor<my_executor_type>::other; -
入れ子型
executor_typeとメンバ関数get_executor()を介して、関連するI/O executorに報告するよう初期化関数オブジェクトを変更したexecutor_typeとget_executor()はオプションとして扱われるべきであり、associated_executorとget_associated_executor()ヘルパ関数を介してそれらのアクセスすることが望ましい
-
default_completion_tokenトレイトを追加した。これはI/O executor型に、非同期操作で使用する関連するデフォルトの完了トークン型を与える。このトレイトは、非同期操作の宣言で以下のように使用する:
template < typename IoObject, typename CompletionToken = typename default_completion_token< typename IoObject::executor_type >::type > auto async_fyz( IoObject& io_object, CompletionToken&& token = typename default_completion_token< typename IoObject::executor_type >::type{} );- 特殊化されない場合、トレイトの
typeはvoidとなり、I/O executorに渡されるデフォルトの完了トークンがないことを意味する。 - このトレイトは
use_awaitable完了トークン向けに特殊化されており、非同期操作を以下のように使用することを許可する:
auto socket = use_awaitable.as_default_on(tcp::socket(my_context)); // … co_await socket.async_connect(my_endpoint); // デフォルトはuse_awaitable- この例では、
socketオブジェクトの型はtcp::socketから変換され、デフォルトの完了トークンがuse_awaitableに設定されたI/O executorを持つ。ほかの方法として、ソケットの型を直接計算することもできる:
using tcp_socket = use_awaitable_t<>::as_default_on_t<tcp::socket>; tcp_socket socket(my_context); // … co_await socket.async_connect(my_endpoint); // デフォルトはuse_awaitable - 特殊化されない場合、トレイトの
-
async_initiateに、不足していたWindows固有のI/Oオブジェクトの非同期操作のサポートを追加 -
executor型が、acceptした新たなソケットに伝播されるようにした
-
新たな接続を同期もしくは非同期にacceptし、しかしexecutorもしくはexecution contextを指定しない場合に、accept操作がacceptorからsocketに、executor typeを正しく伝播するようにした。例として、以下のacceptor型の場合:
basic_socket_acceptor<ip::tcp, my_executor_type> -
acceptされたsocketの型は以下のようになる:
basic_stream_socket<ip::tcp, my_executor_type> -
-
Protocolの要件として、コピーとムーブの操作が例外を送出しないよう変更した Endpointの要件として、デフォルトコンストラクタとムーブの操作が例外を送出しないよう変更した- protocolのアクセッサに、
noexcept修飾を追加 - socketのムーブコンストラクタに、
noexcept修飾を追加 - Windowsでのシリアルポートを開く操作に関連した以下のissueを修正:
- RTS制御フラグを初期化するために、正しい定数を使用するようにした
- デフォルトのボーレート (baud rate) を設定 (9600)
- 非同期のaccept操作が自動的に再起動されたときに発生する可能性のある、「未処理の作業数」が失われる問題を修正
Atomic
- libstdc++のいくつかのバージョンで
__float128が浮動小数点数型とみなされない問題へのワークアラウンドを追加 - clang-winコンパイラとの互換性を改善
Beast
- 今回は、バグ修正と、Boost.Asioの新機能対応を含むメンテナンスアップデートである
- このライブラリを使用しているユーザーもしくはユーザー企業がどのようにこのライブラリを使用しているか教えてほしい。以下にリストがある:
- 修正内容
https_getのサンプルコードで、Host Headerを送信するようにしたasync_readがタイムアウトしたときのasync_closeのエラーコードを修正- zlibのテストをリファクタし、enumのtypoを修正
CircularBuffer
- GitHub #29
max_size()メンバ関数がアロケータのmax_size()を考慮するよう修正 (Glen Fernandes氏)
Context
- s390xアーキテクチャをサポート
- 破壊的変更
execution_contextを削除
Endian
endian_reverse、conditional_reverse、および\*\_to_*をGCCとClang向けにconstexprにした- 便利な読み込み関数 (load) と書き込み関数 (store) を追加
[load|store]_[big|little]_[s|u][16|24|32|40|48|56|64]
- 便利な浮動小数点数型の別名を追加
[big|little|native]_float[32|64]_[t|at]
- 非
constなdata()メンバ関数を追加し、戻り値型をunsigned char*に変更 - 利用可能な場合に
endian_reverseに__int128のサポートを追加 - 便利なヘッダ
boost/endian.hppを追加
Filesystem
- ヘッダファイルを整理
filesystem_errorをexception.hppに抽出file_statusと関連する列挙型と関数をfile_status.hppに抽出directory_entry、directory_iterator、recursive_directory_iteratorをdirectory.hppに抽出
- 非推奨化 後方互換性のために
operations.hppでは、新たなヘッダexception.hpp、file_status.hpp、directory.hppを、BOOST_FILESYSTEM_NO_DEPRECATEDがdefineされない限りインクルードする。これらの暗黙的なインクルードは非推奨とし、将来のリリースから削除される。ユーザーは、新たなヘッダを直接インクルードするか、filesystem.hppをインクルードすることを推奨する filesystem_error例外が、コンパイル済みBoost.Filesystemライブラリに実装されるようになった。ユーザーは、プロジェクトにBoost.Filesystemライブラリをリンクする必要がある場合がある- GitHub #115 POSIX.1-2008プラットフォームでは、
utimeの代わりにutimensatを使用するようにした。utimeはPOSIX.1-2008で廃止されており、たとえばuClibc-ngでは無効にできる - 終端状態の
directory_iteratorでメモリ確保エラーが起こらないようにした - Windows環境で、Boost.WinAPIを使用してWindowsバージョンを選択できるようにした
- 新機能
directory_options列挙型を追加した。これはC++20の名前付き列挙型を反映している。この列挙型を使用することで、directory_iteratorとrecursive_directory_iteratorのイテレーション時の振る舞いをカスタマイズできる。とくに、権限が不十分で開くことのできないディレクトリのスキップをサポートするようになった。symlink_option列挙型は非推奨となり、directory_optionsで置き換えられる - GitHub #112 デフォルトで、
recursive_directory_iteratorでエラーが起きたときに終端状態になるよう、C++20の仕様に合わせた - 新機能
directory_options::pop_on_errorオプションを追加。このオプションはrecursive_directory_iteratorに対して設定するもので、成功するか終了状態になるまでpop()を繰り返し呼び続けることにより、イテレーションエラーからの回復を試みる - 新機能
directory_options::skip_dangling_symlinksオプションを追加。このオプションはrecursive_directory_iteratorに対して設定するもので、ぶらさがった (参照先がない) ディレクトリのシンボリックリンクを辿らずに、エラー報告する代わりにイテレーションを続行する - 非推奨化
recursive_directory_iteratorの以下のメンバ関数を非推奨とする:level()no_push_pending()no_push_request()no_push()- ユーザーは、標準の機能に対応する
depth(),recursion_pending(),disable_recursion_pending()を使用すること。recursion_pending()は、no_push_pending()とno_push_request()と比較して反対の意味をもつことに注意。非推奨となったメンバ関数は、将来のリリースで削除する予定
- GitHub #76
path::lexically_relative(およびそれに依存するアルゴリズム) を修正し、空、ドット、ドットx2のパス要素を含むパスを正しくハンドリングできるようにした。この動作はC++17に近づき、空およびドットx1パス要素は無視され、ドットx2パス要素は生成される相対パスから減らすよう考慮される
Functional/Factory
factoryとvalue_factoryの実装を、以下の機能に対応するよう書き換えた (Glen Fernandes氏) :- 右辺値引数のサポート (可能な場合)
- 可変引数テンプレートを使用した任意数の引数サポート (可能な場合)
- finalなアロケータのサポート
- fancy pointer (ポインタのように振る舞う機能) を使用するアロケータのサポート
- 例外が無効化された設定をサポート (
BOOST_NO_EXCEPTIONS) - コンパイル時間を改善
- 以下の機能を削除した:
- C++03向けの
BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITYによる引数の数に対する制限 BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_Tによるvoidの代わりのboost::none_tの使用
- C++03向けの
Geometry
- 改善
- GitHub #500 剛体反転の問題 (inverse geodesic problem) に、内部でKarney's solutionを使用するようにした (Adeel Ahmad氏に感謝)
- GitHub #561 内部で使用する新たなアルゴリズム
algorithm detail::calculate_point_order()を追加 - GitHub #584
matrix_transformerに任意の次元をサポート (Tinko Bartels氏に感謝) - GitHub #616
srs::transformationを継続的にさまざまな改善。標準のスレッドプリミティブをサポート - GitHub #627 関係操作の汎用性を改善
- 集合と関係の操作の堅牢性に関するさまざまな改善
- 解決した問題
- GitHub #557 spherical-equatorial座標系での
pointとlinestringのdistanceが間違った結果になる問題を修正 - GitHub #612 geographic座標系での集合操作が間違った結果になる問題を修正
- GitHub #619 spherical-equatorial座標系での集合操作が間違った結果になる問題を修正
- GitHub #557 spherical-equatorial座標系での
- バグ修正
- GitHub #479 sphericalとgeographicの座標系での集合操作のさまざまな問題を修正
- GitHub #623 集合と関係の操作で整数オーバーフローの可能性があった問題を修正
- GitHub #632 非対称の片側バッファ (asymmetric one-sided buffer) の生成のエラーを修正
GIL
- 新機能
- GitHub #309 GSoC 2019: 画像を縮小するLanczos resampling
- GitHub #313 GSoC 2019: バイナリ閾値化 (binary thresholding)、逆バイナリ閾値化 (inverted binary thresholding)、切り詰め閾値化 (truncation thresholding) の機能を追加
- GitHub #314 GSoC 2019: Otsu thresholding method
- GitHub #315 Adaptive thresholdingに、周辺域のmeanもしくはgaussian-weighted sumを使用するようにした
- GitHub #350 GSoC 2019: Harrisレスポンス計算 (non-maximum filteringをともなわないコーナー検出)
- GitHub #364 GSoC 2019: Hessianコーナー検出
- GitHub #361 GSoC 2019: 数値拡張に2Dカーネルの型として、
kernel_2dとkernel_2d_fixedを定義 - GitHub #367 GSoC 2019: 2D convolutionの関数として
convolve_2dを実装 - GitHub #383 GSoC 2019: Box filteringとしてaverage filterを使用
- GitHub #383 GSoC 2019: normalized mean filterをベースにしたブラー関数
- GitHub #392 GSoC 2019: Sobel and Scharr operators
- GitHub #393 GSoC 2019: 画像のノイズ除去のためのMedian filter
- 継続的に新たなテストを追加し、全体的なテストカバレッジを大幅に改善
- GitHub #287
cached_location_tの目的をドキュメント化 - GitHub #347 数値拡張に、
convolve_rowsとconvolve_colsを便利に使うためのconvolve_1dを追加 - GitHub #386 数値拡張に、画像境界の拡張 (image boundary extension) のため
extend_boundary関数を追加 - GitHub #404 プロジェクトのリリースノートとして
RELEASES.mdをメンテナンスした
- 変更
- GitHub #302 コア機能と拡張を含む全てのテストを
/testディレクトリに移動
- GitHub #302 コア機能と拡張を含む全てのテストを
- 削除
- GitHub #274 Boost.MPLをBoost.MP11で置き換えた
- GitHub #274 Boost.TypeTraitsの使用をやめた
- GitHub #296 GCC <= 4.8のサポートをやめた
- GitHub #403 未使用の
include/boost/gil/version.hppファイルを削除
- 修正
- GitHub #273 デフォルト初期化された
channelとpixelオブジェクトの未初期化値を修正 - GitHub #284
std::is_trivially_default_constructibleの特殊化による未定義動作を修正 - GitHub #385 不正なヘッダをもつPNGを読むとクラッシュする問題を修正
- 多くの型にRule of Threeを適用 (デストラクタ、コピーコンストラクタ、コピー代入演算子)
- 非推奨だった、暗黙定義されるコピーコンストラクタとコピー代入演算子を削除
- GitHub #273 デフォルト初期化された
Histogram
- 新機能
- C++17コンパイラ向けに、axis型とhistogram型のよりよい推論ガイドを定義
- インデックスを使用したコードのパフォーマンスを改善
- 値のチャンクからのfillを加速する
histogram::fillメンバ関数を追加 boost/histogram/ostream.hppに、1Dヒストグラム向けにASCII棒グラフの出力を追加 (Przemyslaw Bartosik氏によるコントリビュート)- 不正なaxisオプションが渡された場合に、ユーザーフレンドリーなコンパイルエラーを出力するようにした
weight()とsample()の間違った使い方をした場合に、ユーザーフレンドリーなコンパイルエラーを出力するようにした- 全てのhistogramがデフォルト値をもつ場合に
trueを返す、algorithm::empty関数 (Henry Schreiner氏によるコントリビュート) - shrink付き
algorithm::reduceは、値がbin edgeでない場合に、適格に定義されるようになった - axisが受け入れる値の数を返す
axis::traits::rank関数 - axisが連続か離散かを判定する
axis::traits::is_continuous関数 - axisが、入力可能なbinをもっているかを判定する
axis::traits::is_inclusive関数 - mean accumulator向けに、限定的にweightをサポート
accumulators::weighted_mean::sum_of_weights_squaredメンバ関数を追加
- 修正
- clangでの
-std=c++2aと-stdlib=libc++のサポートを追加。gcc-9の互換性を修正 - エラーをトリガーにすることなく、fill中にsampleの代わりにweightを渡せるようにした
algorithm::projectに大量のインデックスを渡したときのセグメンテーションフォルトを修正- indexed range generatorが、
std::arrayベースのストレージで動作していなかった問題を修正 weighted_mean() + weighted_mean() != weighted_mean()だった問題を修正 (Henry Schreiner氏による問題発見と報告)axis::option::test(...)が、テストマスクのいずれかのビットが立っている場合にtrueを返すよう修正 (これまでは、テストマスクの全てのビットが立っている場合にtrueを返していた)minとmaxの呼び出しをマクロ展開から保護- concepts.qbkの全てのcrlfをlfに置き換え
- histogramに、ユーザーによって大量のaxisが渡された場合の、不足していた
std::invalid_argumentの例外送出を入れた - コンセプトセクションでの、シリアライズサポートに関するドキュメントを正した
- いくつかのコンパイラバージョンの警告を解決
- clangでの
- その他
- Boost.Histogramのロゴを追加
- 不足していたcopyright注記を追加
axis::category::valueが、スカラ型に対してコピーを返し、その他がconst参照を返すようにした- コードの膨張を防ぐために、例外のメッセージ生成に
std::ostringstreamを使用するのをやめた - ドキュメント改善
- overviewセクションを再構成
- 新機能を紹介するuser guideを更新
- accumulatorの例を更新
- Conceptsで、accumulatorがオプショナルにweightを受け入れる方法を記載
- ベンチマークコードを更新
- b2とcmakeビルドシステムの一貫性をチェックするテストを追加
- ODR (One-Definition-Rule) をチェックするテストを追加 (非テンプレートな関数が
inlineになっていなかったらテスト失敗) - シリアライズのコードをBoost.Serializationから分離
- Boost.CallableTraitsへの依存を削除
Log
- clang-winコンパイラとの互換性を改善
Math
- 超幾何関数 (Hypergeometric functions) として、1F0、0F1、2F0、1F1、pFqを追加
- ヤコビ多項式 (Jacobi polynomial) と導関数 (derivatives) の評価を追加
- ゲーゲンバウアー多項式 (Gegenbauer polynomial) と導関数の評価を追加
- カーディナルB-スプライン曲線 (Cardinal B-Splines) と導関数を多項式として追加
- カーディナル三角補間 (Cardinal Trigonometric Interpolation) を追加
- 小区分 (sub-section) の統計を追加
- 1標本t検定 (One Sample Student's T Test) を追加
- 正規性のために、アンダーソン–ダーリング検定 (Anderson Darling test) を追加
- 自動訂正のために、リュング・ボックス検定 (Ljung Box test) を追加
- ランダムなシーケンスのために、ラン検定 (Runs test) を追加
- ヘッダ
boost/math/tools/univariate_statistics.hppとboost/math/tools/bivariate_statistics.hppを非推奨化し、boost/math/statistics/univariate_statistics.hppとboost/math/statistics/bivariate_statistics.hppを推奨 - 経験累積分布 (Empirical CDF distribution) を追加
- ランチョス近似 (Lanczos approximation) を通常の精度で使用するすべての関数に適用できるように、多精度ガンマ関数で使用されるスターリング近似 (Sterling approximation) を作り直した。また、Lanczos近似を10進数100桁精度まで拡張した
MPI
- より明確にドキュメント化した
- 明示的な入力バッファオフセットを使用した際の
scattervのバグを修正 - Intel MPI >= 2019.4で、
MPI_Probeとその仲間の使用を有効にした - Windowsでのシンボル可視性を修正
Multiprecision
constexprで大きな更新をし、GCCとClang 9以降もしくはstd::is_constant_evaluated()を使用できるコンパイラで、cpp_intとfloat128の算術演算を完全にconstexpr化した- GitHub #164 可変精度
mpf_floatで、正しい精度を選択しようしとしてテールスピン (tailspin) に陥るバグを修正
Outcome
- 強化
- スタンドアローン版のOutcomeが
make installができるようになり、cmakeのfind_package()で見つけられるようになった。注意として、個別にインストールする必要があり、依存関係にあるquickcpplibをインストールしないとfind_package()が失敗する - スタンドアローン版のOutcomeでは依存ライブラリの管理にgit submoduleを使用していたが、代わりにcmake superbuildの依存関係メカニズムを使用するようにした。cmake configureをすることで、quickcpplibの内部コピーがgit cloneされ、(内部で
find_package()によって) ビルドディレクトリにインストールされる。これは、configureされていないOutcomeリポジトリにとって破壊的変更となり、以下のいずれかを実行する必要がある:- cmake buildのためのサブディレクトリとしてOutcomeを追加する
- cmake superbuildを使用してビルドとインストールを行う
- シングルヘッダ版を使用する
- スタンドアローン版のOutcomeにおいて、C++ Conceptがコンパイラで使用可能かをチェックし、使用できるなら有効にするようにした。cmake変数
CXX_CONCEPTS_FLAGSを空文字列に設定することで、この自動検出と有効化を防止できる OUTCOME_TRYで、操作が成功する可能性が高いかをヒントとしてコンパイラに伝えられるようになった。「P1886 Error speed benchmarking」では、式が成功する可能性が高いかどうかをコンパイラに伝えることにより、非常に小さな関数にとってかなりの有益になることがわかった。OUTCOME_TRY_FAILURE_LIKELYは操作が失敗する可能性が高いことをコンパイラに伝える。ヒントのない以前の動作に戻したい場合は、OUTCOME_TRY_LIKELY(expr)の定義を(!!expr)とすればよい- GitHub #199 C++コルーチンのサポートを追加。これには2種類あり、まず
TRY操作を行うOUTCOME_CO_TRY()がある。もうひとつは、outcome/coroutine_support.hppヘッダにeager<OutcomeType>とlazy<OutcomeType>の実装があり、C++コルーチン内からbasic_resultとbasic_outcomeをより自然で効率よく使える。具体的には、resultもしくはoutcomeが例外ポインタから構築される場合、コルーチン内から送出された例外は、コルーチンマシンを介して例外を送出するのではなく、送出された例外を保持するオブジェクトをコルーチンreturnする。earger<T>とlazy<T>はどちらもTを受けられる。どちらもVisual Studio 2019およびClang 9でテストし、動作することを確認している - GitHub #210
make_error_code()とmake_exception_ptr()が、basic_result<>との互換性あるコピーとムーブの変換をさらに考慮するようになった。これにより、basic_result<T, E>からbasic_result<T, error_code>を構築できるようになった。ここでEは、ADLにより見つかった非メンバ関数error_code make_error_code(E)を実装したカスタム型である。そうでない場合、Eはerror_codeとは関連性がないものとされる。同じ機能がexception_ptrにもあり、こちらはADLによりmake_exception_ptr()関数が探索される。basic_outcome<>はコンストラクタの数を維持するために、basic_result<>よりも小さなサポートとなり、basic_result<>とfailure_type<>からの変換を受けられる
- スタンドアローン版のOutcomeが
- バグ修正
- GitHub #184 コンパイラの
[[nodiscard]]サポートの検出が壊れていた
- GitHub #184 コンパイラの
PolyCollection
メンテナンス上の修正
Preprocessor
- 空 (emptiness) に関する議論をトピックとして追加
- C++20
__VA_OPT__構築のサポートを追加- C++20レベルの
__VA_OPT__がサポートされているかを判定するBOOST_PP_VARIADIC_HAS_OPT - C++20レベルの
__VA_OPT__を使用して空かをテストするBOOST_PP_CHECK_EMPTY - C++20レベルの
__VA_OPT__より柔軟な代替機能であるBOOST_PP_VA_OPT
- C++20レベルの
Smart Pointers
- スカラ型と配列型に対応した
allocate_uniqueを実装 (Glen Fernandes氏)
Test
- Boost.Test v3.12
- 新機能
- C++17
std::string_viewのサポートを追加 - GitHub #234
boost::exceptionとRTTI無効化環境でのよりよい診断 (Mikhail Pilin氏に感謝)
- C++17
- バグ修正とPull Request
- Issue
- GitHub #206 コンパイル時に無効化されたテストが、JUNITのログで正しく処理されない問題を修正
- GitHub #217 テンプレートタイプに複数のパラメータが含まれている場合に、名前によるフィルタテストができない問題を修正
- GitHub #229 非推奨の
std::random_shuffleを使用しないよう修正
- Pull Request
- GitHub #227
report_errorに、printfフォーマットのチェック属性を追加 - GitHub #231 OpenBSDに
SI_ASYNCIOとSI_MESGQがなかったので存在チェックを追加 - GitHub #232 Windowsでのタイムアウトを修正
- GitHub #234
boost::exceptionとRTTI無効化環境でのよりよい診断
- GitHub #227
- Issue
VMD
- C++20レベルの実装として100%の信頼がある場合に、
BOOST_VMD_IS_EMPTYに__VA_OPT__を使用するよう更新
テスト済みコンパイラ
主要なテストコンパイラ:
- 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