本家リリースノート:
- https://github.com/boostorg/website/blob/master/feed/history/boost_1_70_0.qbk
- http://www.boost.org/users/history/version_1_70_0.html
リポジトリは以下:
リポジトリからのビルド方法は、egtraさんのブログを参照:
- Boost.Beast
- アイドル状態のpingタイムアウト発生時の、ムーブ元executorを修正
- Outcome
- C++の例外処理を (直接的に) 使用することが適切ではない状況のための、関数の失敗をハンドリングし、報告するためのツールセット。作者Niall Douglas
- Histogram
- C++14向けの、便利なインタフェースを持つ高速で拡張可能な多次元ヒストグラム。作者Hans Dembinski
- Asio
- Beast
- Context
- Coroutine2
- DLL
- DynamicBitset
- Fiber
- Filesystem
- Geometry
- Integer
- Log
- Math
- Mp11
- Multi-index
- Multiprecision
- PolyCollection
- Spirit
- Stacktrace
- Test
- Type-Index
- Type Traits
- uBLAS
- Variant
このリリースは、多くの新機能、バグ修正、パフォーマンス向上、ドキュメントの改善が含まれる。主な変更点は以下の通り:
- (ソケットとかの) I/Oオブジェクトで、カスタムのI/O executorを使用する機能を追加
initiate
静的メンバ関数に、async_result
を使用する形式を追加- Coroutines TSのサポートを更新し、
asio
名前空間に昇格させた CopyConstructible
な新たなコンセプトDynamicBuffer_v2
を追加- ユーザー定義の非同期操作を実装するのを簡単にする
async_compose
関数を追加 - ヘルパ関数
make_strand
を追加 - completion condition typeの要件を緩和し、コピー構築可能ではなくムーブ構築可能だけ要求するようにした
local::basic_endpoint
クラスのコンストラクタに、string_view
をとるオーバーロードを追加- さまざまな関数に
noexcept
修飾を追加 - コンフィグレーションの
#define
としてBOOST_ASIO_DISABLE_VISIBILITY
を追加 - polymorphic executorで関数オブジェクトを型消去 (type erase) する際に使用するメモリをリサイクルするようにした
- データグラム指向ソケット (datagram-oriented socket) で切り詰め (truncation) (
error::message_size
) が発生したときに、receive関数が転送されたバイト数を正しく返すよう変更 - バックエンドが
pthread_cond_timedwait
を使用する場合の、絶対アウトの計算を修正 EndpointSequence
イテレータ型を推論するよう範囲ベースの非同期接続操作を変更- 暗黙の変換を防ぐよう
buffer_sequence_begin
とbuffer_sequence_end
を修正 - ローカル操作が完了する前にSSLハンドシェイクのエラーがピアに伝播されることを保証
- SSLシャットダウン時の
eof
エラーは実際には成功しているので、エラーを抑制 - OpenSSLが関連するエラーなしに
SSL_ERROR_SYSCALL
を出力する際のフォールバッグエラーコードを追加 - readとwriteの合成非同期操作がbuffer sequence objectsをムーブするよう変更
- macOS固有での
OSMemoryBarrier
が非推奨になったことによる警告を修正 - MSVC 11.0での、readとwriteの合成操作を使用した際に発生するコンパイルエラーを修正
dispatch
、post
、defer
のドキュメントを改善system_executor
を使用した際の、Windows固有のメモリリークの可能性があったところを修正
より詳細な変更は、Revision Historyを参照
- 大きいアップデート
- https://www.boost.org/libs/beast/doc/html/beast/quickref.html ページの☆マークが付いているところが重要
- 助力求む!
- Beastを使っている会社の方は、どのように使用しているのかをこちらのページから教えてほしい
- バグ、機能リクエスト、その他フィードバックは、こちらから報告してほしい
- C++ Slack Workspaceの #beast チャンネルと #boost チャンネルに参加してほしい
- リポジトリへの☆も忘れずに!
- チュートリアルをさらに充実させ、活かせるコードを増やした
- Networking Refresherはゼロから教える
- [Asynchronous Echo (非同期Echo)]((https://www.boost.org/libs/beast/doc/html/beast/using_io/writing_composed_operations/echo.html)の例を更新
- Detect SSL (SSL検知)の合成操作チュートリアルを更新
- websocket-chat-multiは、JavaScriptのブラウザクライアントと組み合わせたマルチスレッドのチャットサーバー
basic_stream
とtcp_stream
は、以下を提供する:- タイムアウト: 期限切れに対して
error::timeout
を使用して、async_read_some
、async_write_some
で検知する - トラフィックシェーピング (Traffic-shaping) ポリシーとして、
simple
、unlimited
もしくはユーザー定義のためのRatePolicyコンセプト - P1322R0を使用して、ソケットに直接strandを置けるようにした。呼び出し側で
bind_executor
は必要ない
- タイムアウト: 期限切れに対して
- 基本クラス群
async_base
とstable_async_base
は、全ての合成操作ボイラープレートをハンドリングできる
ssl_stream
は、flat write optimizationを使用して、ムーブ可能かつ代入可能にした- 全ての非同期操作は、Coroutines TSとの効率的な統合のためにAsioの
async_initiate
を使用するようにした - コンパイルの高速化のためには、
BOOST_BEAST_SPLIT_COMPILATION
をdefineしてboost/beast/src.hpp
を.cppファイルでインクルードすること - 完全な変更点は、リリースノートを参照
- GitHub #28
pthread_cancel
でクラッシュしないようにした
- GitHub #91
ucontext
の生成に失敗したときに、スタックをクリーンアップするようにした - GitHub #97
stack_context
に不足していたBOST_CONTEXT_DECL
を追加 - GitHub #98
jump_i386_sysv_macho
でx87 control wordにゴミを書き込んでいたのを修正
- GitHub #21 新たなマクロ
BOOST_DLL_USE_STD_FS
を追加。これを値1でdefineすると、C++17標準のstd::filesystem::path
、std::system_error
、std::error_code
を使用するようになる。例外の型がboost::system::system_error
からstd::system_error
に変わるので、catch
節を必ず更新すること - GitHub #23 動的読み込み可能かの検出と装飾ロジック (decoration logic) を大幅に書き直した。これにより、読み込み失敗した際により正確なエラーが報告されるようになった。プラットフォームに関連したクエリや検出を行わず、ライブラリへの修飾パス (decorated path) を返す
shared_library::decorate()
関数を追加した。より良い結果を得るためには、shared_library::load()
関数と、shared_library
クラスのコンストラクタを使用することを推奨する (作業してくれたLoïc Touraine氏に多大な感謝) - CI強化、ドキュメント更新、誤字修正、移植性に関する多くの修正と整理
- GitHub #33, GitHub #35 古いCPUで未定義動作が起きたため、MSVCではハードウェア支援のあるpopcountを無効にした
- GitHub #191 未使用変数の警告を無視
- Github #196
remote_ready_splk_
がロック取得の高い競争状態にあったのを修正
path
クラスの実装での、std::string::end()
を間接参照しているいくつかの箇所を修正- GitHub #58
(recursive_)directory_iterator
のコンストラクタと、error_code
への参照をとる操作において、メモリ不足状態でプログラムが強制終了してしまう問題を修正 - Trac #12759
path
クラスの静的メンバ変数の定義が不足していたことにより発生していたリンクエラーを修正 - Linux上のdirectory iteratorのインクリメントで、未初期化データが使用される可能性があったのを修正
- directory iteratorにムーブサポートを追加
- GitHub #55
directory_entry
クラス用の、file statusを問い合わせるオーバーロードを追加。これによって、directory iteratorを間接参照した結果からfile statusを問い合わせる際に、比較的負荷の高いOSクエリを回避できる - ファイルシステムが壊れたり改ざんされたりしたときに起こり得るメモリ枯渇を避けるために、
current_path()
とread_symlink()
を実装を見直した。これらの関数には、OSが受け付けるパスサイズに内部的な制限があり、現在が16MiBである copy_file()
関数が使用する内部バッファのサイズを増やした
- 改善
- GitHub #526
line_interpolate()
アルゴリズム (線形補間) を追加
- GitHub #526
- 解決した問題
- GitHub #450 geodesic direct formulasでの負の距離をサポート
- GitHub #466 spherical/geographicでの
disjoint(box, polygon)
が誤った結果を出力する問題を修正 - GitHub #547
zip_iterator
でのrtree
の構築で未定義動作が起こる問題を修正 - GitHUb #560
karney_direct
formulaが不正確だった問題を修正 - GitHub #577 interprocessアロケータと組み合わせたrtreeがClangでコンパイルエラーになる問題を修正
- GitHub #579 spherical/geographicでの
disjoint(segment, box)
が誤った結果になる問題を修正
- バグ修正
- GitHub #538 msvc-12での配列初期化の欠陥に対するワークアラウンドを追加
- GitHub #553 回転楕円体 (spheroid) が地理的 (geometric) な比較戦略で正しく動作するよう修正した
- GitHub #570 spherical/geographicでのジオメトリ間の距離の計算を修正
- GitHub #571 geographicの距離の計算でNaNが出力されることがあった問題を修正
- gcc-4.6、msvc-10, 11, 12でのrtreeのコンパイルエラーに対するワークアラウンドを追加
- 動作の変更
- いくつかのジオメトリの組み合わせの
envelope
で、strategyによって期待される結果が異なるようになる
- いくつかのジオメトリの組み合わせの
- GitHub #11 拡張ユークリッドの互除法 (Extended Euclidean Algorithm) と、モジュラ逆数関数 (Modular Multiplicative Inverse function) を追加 (Nick Thompson氏)
- text file sink backendでファイルを収集するまえに別のログファイル名を生成する機能をサポートした。これによって既存のログファイルのファイル名にタイムスタンプやファイルカウンタを付加することができ、その結果として汎用的なファイルコレクションを可能にする
- この機能を有効にするには、text file sink backendに対象ファイルのname patternを設定する必要がある。名前付きパラメータ
target_file_name
を使用して、text_file_backend::set_target_file_name_pattern()
メンバ関数を呼び出すか、settingsでTargetFileName
sinkパラメータを使用する - このname patternは、ファイルへの書き込みが終了して収集する際に、新しいファイル名を生成するために使用する。例として、元のファイル名として
app.log
を付けた場合、収集してrotateできるようにするため"app-2019-01-05.log"
のようなタイムスタンプやファイルカウンタを付加した衝突しない名前にできる
- この機能を有効にするには、text file sink backendに対象ファイルのname patternを設定する必要がある。名前付きパラメータ
- 新機能
- Lanczos smoothing derivatives (ランチョスのスムージング導関数) を追加
numerical_differentiation.hpp
をboost/math/tools/
からboost/math/differentiation/finite_difference.hpp
に移動mean
(平均)、variance
(分散)、skewness
(歪度)、kurtosis
(尖度)、median
(中央値)、Gini coefficient (ジニ係数)、median absolute deviation (MAD、中央値絶対誤差) をtools/univariate_statistics.hpp
に追加- correlation coefficients (相関係数) とcovariance (共分散) を
tools/bivariate_statistics.hpp
に追加 - absolute Gini coefficient (絶対ジニ係数)、Hoyer sparsity (ホイヤーのスパース性)、oracle SNR、M2M4 SNR estimatorを
tools/signal_statistics.hpp
に追加 - total variation (TV)、l0、l1、l2、sup norms (supノルム)、それと同様に対応するdistance (距離) 関数を
tools/norms.hpp
に追加 polynomials
向けにムーブコンストラクタを追加、complex coefficients (複素係数)、.prime()
と.integrate()
メンバ関数を追加quadratic_roots
をtools/roots.hpp
に追加roots.hpp
のニュートン法に、complex値の関数を追加- Catmull-Rom interpolator (Catmull-Rom補間器) を追加
- 破壊的変更 :
mp_invoke
をmp_invoke_q
に名称変更 mp_similar
を追加。型リストが全て同じ型であればmp_true
、そうでなければmp_false
mp_set_union
、mp_set_intersection
、mp_set_difference
を追加mp_not_fn
を追加mp_transform_first
、mp_transform_second
、mp_transform_third
を追加。それぞれ、型リストの先頭要素、その次の要素、さらにその次の要素に変換メタ関数を適用するmp_filter
を追加mp_eval_if_not
、mp_eval_or
、mp_valid_q
を追加mp_back
、mp_pop_back
を追加
- アロケータメンバの同名の型として
size_type
とdifference_type
を定義した。これは多くの状況ではなにも変わりはないが、アロケータの定義によってコンテナの内部構造をある程度制御できるようになった- 本件の動機については、GitHub #17を参照。現時点でこの変更は、リファレンスには記載しておらず、準公式の扱いになっている
- メンテナンス作業
- Boost.Optionalとの互換性チェックでの、traitsクラスのさまざまな変換問題を修正
- GitHub #98 変換可能性をチェックする際、古い型では
std::numeric_limits
のインスタンス化が起こらないようにした - GitHub #103 任意精度整数を考慮して、可変精度コードを更新
- XML serialization archivesのサポートを追加
- GitHub #113
mpf_float
とmpfr_float
の、iostreamの固定精度フォーマットしたときのバグを修正 - ネイティブのMPFRをよりハンドリングしやすくするため、特殊関数 (コンストラクタとか) にオーバーロードを追加
- 常に失敗する可能性があった、ジェネリックな
exp
関数のバグを修正 - GitHub #110 浮動小数点数から整数へのジェネリックな変換で、未定義動作を回避
- Billy O'Neal氏によって、
rooted_allocator
の機能不足 (比較演算子とis_always_equal
) が報告された (GitHub #9) 後、状態を持つアロケータ (stateful allocators) と、アロケータの状態伝搬トレイト (allocator propagation traits) のハンドリングを改善 - 内部のキャッシュ構造での、潜在的な重大バグを修正
- GitHub #432 非推奨ヘッダ
boost/detail/iterator.hpp
の使用をやめた - X3
- GitHub #429 整数パーサーがユーザー定義型を扱えるようにした
- 注:
check_overflow
トレイトのデフォルト実装で、boost::integer_traits<T>::is_integral
の代わりにstd::numeric_limits<T>::is_bounded
を使用するようにした
- 注:
- GitHub #439 plain parsing内のシーケンスを削除した。これによってコンパイルエラーは発生するが、代わりにシーケンスを (静かに) パースでき、最後の値 (last value) をとれる
BOOST_SPIRIT_INSTANTIATE
によるparse_rule
の以下の状況でのインスタンス化を修正:- GitHub #455 ruleがattributeをもたないとき
- GitHub #456, GitHub #457 ruleが定義された型ではない属性のとき
- GitHub #453 レグレッションを報告してくれたXeverous氏に多大な感謝
- GitHub #444, GitHub #449, GitHub #452 rule内の、属性の不要な統合 (synthesization) と、変換なし属性の参照渡しを修正
- GitHub #415, GitHub #458, Trac #8699 壊れていた1.0#INFパーサーを削除。あまりドキュメント化されておらず、動作もしていなかった。
- GitHub #460 アンドキュメントだった
make_attribute
トレイトは、バグ (GitHub #449) があったのと、属性変換をシンプルにするために削除した- 属性変換のためにこの機能を使用していたのであれば、このリリースからはもう必要ないはず
- GitHub #469 整数パーサーが
std::numeric_limits<T>::digits10
値を考慮するようにした - GitHub #469
(Min % Base) == 0
コーナーケースでのアンダーフローチェックを修正 - GitHub #470
IgnoreOverflowDigits=true
な整数パーサーでの出力値のオーバーフローを修正 - GitHub #472 コンテナ属性要素 (Container attribute elements) がコピーはされていたが、ムーブされていなかった
- GitHub #480
transform_attribute
での特殊な参照ハンドリングを削除
- GitHub #429 整数パーサーがユーザー定義型を扱えるようにした
- V2
- GitHub #349, GitHub #482 Boost.Endianとのマクロ名と名前空間の衝突を修正
- utree
- GtiHub #423 負の値の左シフトによるタグ取得での未定義動作を修正
- GitHub #462 double conversionを修正 (
spirit::string -> std::string -> spirit::string
)
- Qi
- GitHub #427 rule skipper型問題のためにstatic assertを追加
- GitHub #429
check_overflow
トレイトのデフォルト実装で、boost::integer_traits<T>::is_integral
の代わりにstd::numeric_limits<T>::is_bounded
を使用するようにした - GitHub #429 整数パーサーがユーザー定義型を扱えるようにした
- GitHub #415, GitHub #458, Trac #8699 壊れていた1.0#INFパーサーを削除。あまりドキュメント化されておらず、動作もしていなかった。
- GitHub #460 アンドキュメントだった
make_attribute
トレイトは、バグ (GitHub #449) があったのと、属性変換をシンプルにするために削除した - GitHub #467
pre
/post
/fail
の変換トレイトを直接使用するようにしたので、ユーティリティ関数pre_transform
、post_transform
、fail_transform
を削除 - GitHub #469 整数パーサーが
std::numeric_limits<T>::digits10
値を考慮するようにした - GitHub #469
(Min % Base) == 0
コーナーケースでのアンダーフローチェックを修正 - GitHub #470
IgnoreOverflowDigits=true
な整数パーサーでの出力値のオーバーフローを修正 - GitHub #480
transform_attribute
での特殊な参照ハンドリングを削除
- Lex
- GitHub #420 ユーザー指定のトークン型をともなうlexerのデフォルトコンストラクタでの未定義動作を修正
- Classic
- GitHub #422, Trac #9737 元となるイテレータ (underlying iterator) の間接参照演算子が非const参照型を返すときに、
position_iterator
がローカル変数への参照を形成してしまう問題を修正
- GitHub #422, Trac #9737 元となるイテレータ (underlying iterator) の間接参照演算子が非const参照型を返すときに、
- iOS 32-bit ARM向けのビルドを修正 (修正を提供してくれたIvan Ponomarev氏に感謝 GitHub #70)
- ドキュメントの誤字修正、警告修正、更新
- Boost.Test v3.10
- 詳細な変更はChang Logを参照
- 破壊的変更
- Boost.Test
minimal.hpp
で、非推奨警告を表示するようにした - 浮動小数点数の比較を変更したので、このリリースより前の浮動小数点数比較を使用したテストが失敗する可能性がある
- 内部的なAPI
unit_test_log_formatter
を変更。詳細はライブラリ個別のchange logを参照
- Boost.Test
- 新機能
- 浮動小数点数の比較を拡張し、非浮動小数点数と算術オペランドをとれるようにした。
BOOST_TEST(3.0001 == 3)
このように使用できる (浮動小数点数と整数の比較、かつ演算子を直接指定できる) - カスタムデータセットの宣言で、
sample
型フィールドの指定が必須ではなくなった - テンプレートテストケースを、
std::tuple
によって可変引数定義できるよう拡張した - 時間テストのためにWindowsサポート
- テストスイートに対する時間テスト
- Boost.Timerに対する依存を削除
- スコープ付きのコンテキスト宣言のために新たなマクロ
BOOST_TEST_INFO_SCOPE
を追加 BOOST_TEST_CONTEXT
の構文を改善
- 浮動小数点数の比較を拡張し、非浮動小数点数と算術オペランドをとれるようにした。
- バグ修正とPull Request
- Trac
- GitHub Issues
- #133 Windowsでテストのタイムアウトを指定するとスキップされてしまう
- #138
BOOST_DATA_TEST_CASE
でexpected_failures
が動作しない - #141 Boost.Mp11とBoost.Hanaの型リストをサポート
- #157 テスト名のCV修飾
- #160 GCC 8.2.0で最適化を有効にした際の
-Wformat-overflow
での警告を修正 - #174 GCC 8でのみ、終了時にUBSANで問題が検出される
- #176 snippet_dataset1_3が壊れている
- #177 文字配列の等値比較テストがLLVMで失敗する
- #180 MSVCで到達しないコードによる警告がでていたので修正
- #181 doc_example22(と23)が失敗していた
- #194
master_test_suite
の二重宣言を修正 - #196 JUnitレポートで、エラーが失敗として報告される
- #198 b2とcmakeでの定義から動的リンクを作れるよう認識させた
- #199 1.69.0にアップグレードしたあと、
type_mismatch
実行時エラーが出力される - #202 非推奨となっていた
boost/timer.hpp
の使用をやめた - #203 データセットとフィクスチャの両方をともなうテストケースが柔軟なインタフェースを持っていない。
BOOST_DATA_TEST_CASE_F
にフィクスチャを指定したときにsetup()
とteardown()
が呼び出されなかった - #204 データセットを伴うテストケースでタイムアウトを扱いたい
- GitHub Pull Request
- #171 テストランナーが出力するライブラリ名を正しくした。s/Boost.test/Boost.Test/
- #172
NDEBUG
定義時の未使用変数の警告を修正 - #182 C++17でもコンパイルできるように、直接
std::bind1st()
を使用していたところを修正 - #183 不要なセミコロンを削除
- #184 未使用変数の警告を修正
- #190 cygwinのGCC 7.3での
master_test_suite
での警告を修正 - #195 MinGW GCC 5.3でのコンパイル問題を修正
- #197
BOOST_TEST_CONTEXT
がスコープを導入するのがわかりにくかったので、波カッコ構文でスコープを導入できるようにした - #205 MinGW環境で
vsnprintf
がないためコンパイルエラーが起きていた問題を修正
- Github #28 GHS C++コンパイラのサポートを追加 (パッチを提供してくれたBrandon Castellano氏に多大な感謝)
- GitHub #23 文字列と型の比較を最適化 (パッチを提供してくれたAndrey Semashev氏に多大な感謝)
- GitHub #25 clang-winでのコンパイルを修正 (パッチを提供してくれたPeter Dimov氏に多大な感謝)
- CIを強化
- 要素数が判明している配列型かを判定する
std::is_bounded_array
、要素数が不明な配列型かを判定するstd::unbounded_array
を追加 - 指定した型から目的の型に参照の情報をコピーする
copy_reference
と、CV修飾と参照をコピーするcopy_cv_ref
を追加copy_reference<int, char&>::type == int&
copy_cv_ref<int, const char&>::type == const int&
/clr
オプション付きMSVCのサポートを改善- コンパイラ互換の雑多な修正
- GitHub #65 C++17以上で使用できるテンソルフレームワークを追加 (Cem Bassoy氏に多大な感謝)
- GitHub #69 基礎的なOpenCLサポートを追加 (Fady Essam氏に多大な感謝)
- GitHub #57 基礎的なベンチマークスイートを統合 (Stefan Seefeld氏に多大な感謝)
- CIインテグレーションと強化
- 整理と内部的な改善。Nikita Kniazev氏 (GitHub #55, GitHub #56, GitHub #57)、Louis Dionne氏 (GitHub #51)に感謝
- CIを強化
主要なテストコンパイラ:
- 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