最終更新日時:
が更新

履歴 編集

Boost 1.67.0リリースノート

本家リリースノート:

リポジトリは以下:

リポジトリからのビルド方法は、egtraさんのブログを参照:

既知の問題

新ライブラリ

  • Contract
    • C++用の契約プログラミングライブラリ。契約プログラミングの全ての機能をサポートしている: サブ契約、クラスの不変条件、事後条件 (古い値と戻り値)、事前条件、表明失敗時の挙動をカスタマイズ (例として、例外を投げるかプログラムを異常終了させるか)、コンパイルに含めるかどうかと表明のチェックをオプショナルに、などなど。作者Lorenzo Caminiti氏
  • HOF
    • 高階関数 (Higher-order functions) のライブラリ。作者Paul Fultz II氏

更新ライブラリ

Asio

  • basic_socket_acceptor::get_optionにconst修飾を付け忘れていたので追加
  • GCCのいくつかのバージョンで発生するパースエラーを回避
  • チュートリアルのサンプルコードが壊れていたので修正
  • 実験的な機能を追加。experimentalな機能は、予告なく変更される可能性があるので注意
    • experimental::detached : 非同期操作の完了をハンドリングしない指定。完了ハンドラの代わりに指定する
      • my_socket.async_send(my_buffer, boost::asio::experimental::detached);
    • experimental::redirect_error : error_codeをキャプチャして完了ハンドラに紐付ける
    • experimental::co_spawn : コルーチン仕様を統合する機能
    • 最新機能を使用して、タイムアウトのサンプルコードを更新
    • asio::deadline_timerよりもasio::steady_timerを使用するようにした
    • asio::streambufよりもasio::dynamic_bufferを使用するようにした
    • ブロッキングするクライアントでは、時間指定するasio::io_context::run_for()`関数を使用するようにした
    • タイムアウトときのブロッキングで、カスタムの完了トークンの使用法を示す例を追加
  • BOOST_ASIO_NO_DEPRECATEDが定義されたときの、ユニットテストのコンパイルを修正
  • Networking TSとの互換性のため、socket iostreamsではデフォルトでchronoを使用するよう変更
  • サンプルコードを更新し、Boost.DateTimeよりもchronoを使用するようにした
  • is_dynamic_bufferトレイトでの、メンバ関数検出の誤りを修正
  • async_resultの、非推奨化されたhandler_typeとの非互換を修正
  • SSLストリームの実装において、不足していたムーブ最適化を追加
  • basic_resolver_results::value_type typedefの誤りを修正
  • いくつかのOpenSSLバージョンで、SSL_OP_NO_COMPRESSIONが定義されたときのコンパイルエラーを修正
  • バンドル内の複数の証明書を処理するようadd_certificate_authorityを変更
  • std::result_ofの代わりにstd::invoke_resultを使用し、MSVCの非推奨化による警告を修正
  • C++17以降でstd::string_view、C++14でstd::experimental::string_viewを使用するよう変更。C++17モードでBOOST_ASIO_DISABLE_STD_STRING_VIEWを定義すると、強制的に (利用可能だと仮定している) std::experimental::string_viewを使用する
  • テンプレート引数DynamicBufferが、enable_ifで使用する前に確実にdecayされるようにした
  • 新しいMoveConstructibleな完了ハンドラからレガシーな完了ハンドラ (まだCopyConstructibleが要求される) を区別できるよう、ドキュメントを変更
  • bufferのデバッグサポートでの、戻り値を無視したことによる警告を黙らせた
  • 参照パラメータを含む完了ハンドラのシグニチャで、basic_yield_contextが動作するよう修正
  • spawn()で起動されたスタックフルコルーチンが、関数とハンドラ引数のdecayされたコピーを確実に正しく格納するよう修正
  • Androidでのいくつかの互換性問題を修正
  • Jamfileでのクロスコンパイルをサポート
  • サンプルコードの、いくつかの移植性の問題を修正

Atomic

  • 破壊的変更 1.66.0で追加された(op)_and_test操作の結果を反対にした。これらの関数は、演算結果がゼロでない場合にtrueを返す。これは標準ライブラリのほかのtest関数と一貫した動作である。この関数を使用するたびに警告を出力するBOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TESTオプションを用意した。これを定義することで、仕様変更前のこれらの関数を使用しているところを検出できる
  • C++2a用の更新。memory_orderがスコープ付きのenumになったことへの対応。memory_order_acquireの代わりにmemory_order::acquireを使用できる。古い名前は互換性のために残る。参照 : P0439R0
  • C++2a用の更新。浮動小数点数型のアトミック操作を実験的にサポート
    • add (加算)、sub (減算)、negate (符号反転)の、fetch_バージョンとopaque_バージョン (戻り値型がvoid) を追加した
    • ロックフリーのプロパティマクロとして、BOOST_ATOMIC_FLOAT_LOCK_FREE, BOOST_ATOMIC_DOUBLE_LOCK_FREE, BOOST_ATOMIC_LONG_DOUBLE_LOCK_FREEを追加した
    • BOOST_ATOMIC_NO_FLOATING_POINTを定義することで、浮動小数点数版を無効にできる
    • 参照 : P0020R6
  • 新たな実験的な操作を追加
    • 符号反転するnegate_and_testと、ビット反転するcomplement_and_test。結果がゼロでない場合にtrueを返す
    • fetch_と違って変更後の値が返るadd, sub, negate, bitwise_and, bitwise_or, bitwise_xor, bitwise_complement操作を追加
  • Tのデフォルトコンストラクタがtrivial (自明) であれば、それを要素とするatomic型のデフォルトコンストラクタもそうなるようにした
  • atomic型の内部実装として、符号付き整数型のオーバーフローに起因する未定義動作を回避するようにした。このライブラリの内部で2の補数表現を使用し、オーバーフロー規則に合致するようにした。現在、このライブラリは2の補数表現のネイティブ符号付き整数型を要求する (ただし、定義されたオーバーフローのセマンティクスはない。ライブラリ内部で未定義動作を引き起こさないだけ)
  • Clangサポートを改善。とくに、DCASがロックフリーにならない問題を修正し、32ビットx86で不正なコードが生成される可能があった問題を修正した
  • MinGWサポートを改善。GCC 4.6以上向けに、x86のDCASのコンパイルを修正
  • x86 PIEコードで、asmブロックがebx値を保存するようにした

Beast

  • このバージョンでは、websocket::stream が assertエラーか未定義な振る舞いを起こす重大な欠陥を修正している。ユーザーは最新の Boost のリリースに更新することを推奨
  • 完全な変更のリストについては、公式ページ を参照

ContainerHash

  • Boost内の依存関係を簡潔にするためにfunctionalモジュールから分離された
  • 新しいモジュール名と対応させるためにヘッダーを別のディレクトリへ移した。以前のパスでも依然として動作する
  • 次の標準ライブラリへ対応した
    • std::string_view
    • std::error_code
    • std::error_condition
    • std::optional
    • std::variant
    • std::monostate
  • Trac #13501 vector<bool>を明確にサポート。libc++でも動作する
  • より詳細にはchange logを参照のこと

Context

  • GitHub #62/GitHub #64 OSX 32bit下においてEAX/EDXを使ってtransfer_tを正しく返すように修正
  • GitHub #65 __sanitizer_finish_switch_fiberを呼び出すタイミングが正しくなかったのを修正
  • GitHub #66 WindowsでのClangにおいてビルド出来ない問題を修正
  • GitHub #73 execution_context(v1)がMSVCでエラーとなる問題を修正
  • 既知のバグ : all.hppのインクルード + <context-impl>ucontext/winfib で「forced_unwind: is not a member of boost::context::detail」というエラーになる

Core

  • to_addresspointer_traitsに、C++2aの設計を反映させた (P0653R2)

Coroutine2

  • GitHub #13 プル型コルーチンの起動直後に投げられた例外が再送されなかった問題を修正

DateTime

DLL

  • GitHub #16 GetLastError()がエラー値を返すような状況下での問題を修正

Fiber

  • GitHub #128 : condition_variable::wait_for を使っている場合に assert エラー "! ctx->ready_is_linked()" が起きる点を修正
  • GitHub #132 : ビルド時に 'stdexception' file not found エラーが起きる不具合を修正
  • GitHub #141 : boost::fibers::async が例外を投げる問題に対応
  • GitHub #146 : remote-ready-queue spinlock に対する不要なロックを削除
  • GitHub #153 : context::set_ready()context::schedule() に置き換えるようにドキュメントを修正
  • GitHub #154 : [buffered|unbuffered]_channels の iterator に関するドキュメントを追加
  • GitHub #155 : this_fiber が boost::fibers 名前空間のメンバとしてドキュメントに記されている (訳注: 正しくは boost:: 名前空間の直下) 点を修正
  • GitHub #156 : examples/barrier.hpp を修正
  • GitHub #158 : work_stealing クラスを動作させるために、BOOST_FIBERS_DECL マクロを追加
  • GitHub #162 : タイムアウト待ちの場合に、use-counter (訳注: 正確には use_count_ 内部変数) をインクリメントするルーチンを削除
  • GitHub #166 : scheduler::schedule() コンストラクタにおける ctx->wait_is_linked() アサーションを削除
  • GitHub #167 : future が作成された場合のみ、shared_state::owner_destroyed() を呼び出すように修正
  • GitHub #168 : ドキュメントが最新でなかったので追随

Filesystem

Fusion

  • GitHub #164 MSVC 2017でコンパイルエラーとなるためfusion::mapでのSFINAEをテンプレートパラメータへと移した
  • GitHub #166 fusion::vectorがCWG 945に対応していないコンパイラでエラーとなっていたのを修正
  • GitHub #168 エラーメッセージをわかりやすくするためシーケンスコンバータに要素数の事前チェクを追加
  • GitHub #171 fusion::tag_offusion::is_native_fusion_sequenceに不完全型を渡せるようにした。 これは挙動の変更ではなく、Boost.TypeTraitsの変更への追従となっている

Geometry

改善

  • 新たな地図投影 (map projection) とSRS変換 (SRS transformation) を追加 (部分的にインタフェース変更が発生する可能性があるのでアンドキュメント)
  • 新たなアルゴリズムdensify()を追加
  • C++17で非推奨になったstd::iteratorの使用をやめた (Daniela Engert氏に感謝)
  • rtreeから直接allocatorを使用するのではなく、boost::container::allocator_traitsを介するようにした (Daniela Engert氏に感謝)
  • C++03でムーブセマンティクスをエミュレーションするために、rtreeのデフォルトアロケータをboost::container::new_allocator (とboost::container::allocator_traits) に変更した
  • Area strategiesのインタフェースを変更した。これは破壊的変更になる可能性がある
  • 半径 (Radius) と球体 (Sphere) をspherical strategiesに渡せるようにした
  • sphericalとgeographicのdistance()戦略にPoint-BoxとBox-Boxの組み合わせを追加
  • (multi)polygonsに対するsimplifyの出力が、2点か (closed polygonの) 3点のringを破棄するが、それらを生成しないようにした
  • (multi)polygonsに対するsimplifyが、空のinterior ringsと空のpolygonsを出力から外すようにした

解決したIssue

  • Trac #13386 いくつかのGCCバージョン向けのワークアラウンドを追加
  • Trac #13381 Visual C++ 2015でのmatrix_transformerのコンパイルエラーを修正
  • Trac #13436 boost::geometry::model::polygonドキュメントの間違いを修正

バグ修正

  • length()アルゴリズムに、不足していた戦略解決を追加した。これはVariantのサポートに影響する
  • (multi)polygonsに対するsimplifyが、closing pointをsimplifyするようにした

振る舞いの変更

  • (multi)polygonsに対するsimplifyが、通常では入力のringを回転させてから、凸包 (convex hull) 上の非collinear pointを選択するようsimplifyする。これは出力を改善する

Locale

  • C++03のauto_ptrインタフェースに加えて、unique_ptrのインタフェースサポートを追加。C++17をサポートするために、非推奨のauto_ptrインタフェースを削除オプションとしてBOOST_LOCALE_HIDE_AUTO_PTRを定義できる
  • ICU > 60.1でのテスト問題を修正
  • Trac #6851 Solarisでのビルドを修正
  • 最適化付きビルドでのFreeBSD/clangの問題を修正
  • MSVCのテストで失敗していた、コードページ932 (CP932) のcodecvt問題を修正
  • Trac #12572 国名の正規化をするところでのtypoを修正
  • Trac #12453 libs/locale/src/shared/message.cppのコードにムダが多かった
  • icu/date_timeで失敗するケースでthrowが抜けていたのを修正
  • Boost.Thread v4でのビルドを再度修正
  • ICUバックエンドの年フォーマットの代わりにYear of week (年の何週目か) を使用するよう修正
  • ICU 56.1以上のフォーマットテストを修正

Log

  • C++17 との互換性向上: アロケータを使うために、メンバに直にアクセスするのではなく、allocator_traits を使うようにした
  • ABI の 名前空間の定義を更新することで、gcc 7 以降との互換性を向上させた
  • "TextFile" sink の "Append" 設定パラメータをドキュメントに追加した。このパラメータは以前からサポートされていたが、ドキュメントの更新だけが抜けていた

Math

  • ネイティブのモンテカルロ・インテグレーションをサポート
  • チェビシェフ補間 (Chebyshev interpolation) のルーチンを追加

Multi-index

  • Trac #13307 operator& をオーバーロードしていた要素を完全に受け入れられるようになった。この修正を行うために、Boost.Operators を更新してくれた Daniel Frey に感謝する
  • C++17 で非推奨になった std::allocator クラスのメンバの使用をやめた (代わりにstd::allocator_traitsを使用)
  • メンテナンス上の修正

Multiprecision

  • 破壊的変更 Trac #13109 多倍長整数を縮小型に変換する際、大きすぎる値 (もしくは小さすぎる値) を小さな型に変換すると、変換先の型の最大値 (もしくは最小値) となる。これは意図した動作ではあったが、uint128_tについては未定義動作としてそうなっていた。今回の変更では、このライブラリの全ての整数型でこの動作となる。下位Nビットの値が本当に必要であれば、static_cast<unsigned>(~static_cast<unsigned>(0) & my_value) このようにマスクすることが必要となる
  • Trac #13148 10進数を有理数型に変換する際のバグを修正 (値ゼロは特別にハンドリングする必要があった)
  • Trac #13301 cpp_bin_floatから組み込みのより大きい整数型に変換する際のバグを修正
  • cpp_bin_floatに対するexp()関数の、ヒューリスティックな使用でのパフォーマンスを改善
  • Trac #13264 指数型がintより大きい場合の、floor/ceilcpp_bin_floatのバグを修正
  • GitHub #30 変換先の型が*thisの型から直接的に構築できる場合に、明示的な型変換演算子を無効にした
  • Trac #13124 MPIR-3.0の新たな変更に対応した

Optional

  • GitHub #46 問題 (訳注: Optional<X> が、T という名前が付いた enum を持っていると VS2015 でコンパイルできない) を修正
  • コンパイル時に -Wzero-as-null-pointer-constant が出る問題を修正

Phoenix

PolyCollection

  • メンテナンス上の修正

Python

  • ライブラリ名 (.aや.lib) に、Pythonバージョン名がサフィックスとして付くようになった。例として、Python 2.7用にコンパイルすると、boost_python27boost_numpy27という名前のライブラリファイルが生成される。関連するBoost.Buildの修正と組み合わせることで、複数のPythonバージョンを一度のビルドプロセスでビルドできるようになった

Spirit

Spirit X3

  • 破壊的変更 GitHub #239 with_contextを削除
  • GitHub #241 x3::variantforward_astnoexceptを追加
  • GitHub #238 error_handler::position()がCR+LFの間違ってカウントしていた問題を修正
  • GitHub #266 parse_into_container内でのunused_type属性の使用を修正
  • GitHub #289 連想コンテナに挿入するパース操作を修正
  • GitHub #297 uint_parser<signed T>のオーバーフロー問題を修正
  • GitHub #308 VS2015 Update 3向けのワークアラウンドを追加してサポート
  • GitHub #313 インクルードガード名がQiと衝突していた問題を修正
  • GitHub #316, Trac #12928 rangeに挿入するパース操作を修正
  • GitHub #320 static assertのコンセプトをForwardIteratorからReadableIteratorConcept & ForwardTraversalConceptに変更
  • GitHub #330 fusion::mapのサポートを再度有効にした
  • GitHub #337 string("...")attr("...")からの単一要素シーケンスへのmove_toを修正
  • GitHub #340 シーケンスのアンラップの代わりに、単一要素ビューの間接参照を使用するようにした
  • GitHub #351 parse_nan()での範囲外イテレータの間接参照を防止
  • GitHub #355 コンテナが空か判定するために、直接empty()メンバ関数を使用するのではなく、トレイトを介するようにした

Spirit V2

  • GitHub #256, Trac #11493 qi::keywordディレクティブのテストがC++11モードでコンパイルエラーになる問題を修正
  • GitHub #279, GitHub #259 subruleのコンパイルエラーを修正
  • GitHub #284, Trac #5270 subruleのスコープバグを修正
  • GitHub #310 シーケンシャルなOR演算子の未定義動作を修正。パーサーの実行順序がコンパイラに依存していた
  • GitHub #271, Trac #12349 boost::optionalが持つtypes型に実装が依存していたが、その型が定義されなくなったために発生していたコンパイルエラーを修正した
  • GitHub #314, Trac #13311 BOOST_SPIRIT_NO_PREDEFINED_TERMINALSを定義した際に発生していたコンパイルエラーを修正
  • GitHub #361, Trac #8268 hold_anyにコピー代入演算子が抜けていたので追加

Spirit.Qi

  • GitHub #201, GitHub #271, Trac #12349 代替演算子 (alternate operator, A | B) を修正
  • GitHub #245 実数パーサー内での符号付き整数のオーバーフローを修正
  • GitHub #297 uint_parser<signed T>のオーバーフロー問題を修正
  • GitHub #304 get_current_lineget_line_startを修正し、get_line_endを追加
  • GitHub #319, Trac #12473 順列パーサー (permutation parser, A ^ B) を常にoptionalで初期化するようにした
  • GitHub #320 static assertのコンセプトをForwardIteratorからReadableIteratorConcept & ForwardTraversalConceptに変更
  • GitHub #358 ユーザー定義の実数ポリシーによってparse_frac_nが負数を返さないことを保証するため、assertを追加。静的解析による誤検出も防いだ

Spirit.Karma

  • GitHub #271 代替演算子 (alternate operator, A | B) を修正
  • Github #261 no_buffering_policyにコピーコンストラクタがなかった問題を修正
  • GitHub #345 C++17から非推奨になっていたstd::iteratorからの継承をやめた

Spirit.Lex

  • GitHub #247 -fsanitize=undefinedで検出された、enumの範囲外の値が代入されたことにより警告を修正
  • GitHub #324, Trac #11540 改行コード文字にエスケープが抜けていた問題を修正

Spirit.Classic

  • GitHub #273 std::complexを使用しているところで、<complex>のインクルードが抜けていた問題を修正
  • GitHub #274 remove_referenceを名前空間修飾なしで使っていたところを修正
  • GitHub #275 match<T &>のコンパイルエラーを修正
  • GitHub #323, Trac #12639 BOOST_DISABLE_THREADSを定義した際のコンパイルエラーを修正
  • GitHub #336, Trac #7371 scannerのインクリメント対象が間違っていた
  • GitHub #345 C++17から非推奨になっていたstd::iteratorからの継承をやめた

Stacktrace

  • GitHub #33 Windows OS における Async safe な ファイルダンプ機能は、いくつかのプラットフォームでハングするため、このバージョンで無効とされた。ユーザーは最新の Boost のリリースに更新することを推奨
  • 依存関係を減らすため、ContainerHash ライブラリを使うようになった
  • 小さな修正 (GitHub #31, GitHub #38, GitHub #39, GitHub #40, GitHub #42 を含む)

Test

  • Boost.test v3.7 の詳細については、Changes log を参照すること
  • 後方互換性を壊す変更
    • 同一のテストスイートに対して、同じ名前でテストケースを追加するとエラーを報告するようになった。詳細は Changes log を参照すること
  • 新機能
    • 色付きの出力がデフォルトで有効になり、Windows でも利用可能になった
    • コマンドラインヘルプが改良され、わかりやすくなった
    • BOOST_AUTO_TEST_CASE_TEMPLATE マクロが、 std::tuple に含まれるシーケンス型も受け入れるようになった
  • バグ修正とPull Request

Type Index

  • 依存関係を減らすために、ContainerHashライブラリを使用するようにした
  • 小さな修正 (GitHub #17を含む)

Type Traits

  • 新たなトレイトdetected, detected_or, is_detected, is_detected_convertible, is_detected_exact, is_completeを追加
  • 2項演算子の検出コードを大きく改善した
  • 完全型を引数の要件とするトレイトのために、完全性を検証するアサーションを追加。これによって、不完全型から誤った結果が出力されることを防げるようになる
  • Trac #12212 MPL互換性の小さな修正
  • Trac #12003 is_constructibleが (可変引数テンプレートで) 完全に実装されたことを表すマクロBOOST_TT_IS_CONSTRUCTIBLE_CONFORMINGを追加
  • C++17のnoexcept仕様で正しく動作するよう、is_functionis_member_function_pointerを更新
  • is_default_constructiblestd::pair向けのワークアラウンドを追加
  • C++11より前の言語バージョン向けに、is_nothrow_swappableの実装を追加

Utility

  • 破壊的変更 boost::nextboost::priorをIteratorモジュールに移動したため、<boost/utility.hpp>に含まれないようになった。代わりに<boost/next_prior.hpp>をインクルードすること。ほかの機能を使用する場合でも、<boost/utility.hpp>ヘッダをインクルードすることは推奨しない。特定機能のヘッダをインクルードをする方がよいだろう

Unordered

  • GitHub #7 C++17で非推奨になったstd::iteratorの使用をやめた

Units

  • Trac #10270, GitHub #27 scaled units (大きさの情報を持つ単位型) に対するsqrtがコンパイルエラーになる問題を修正
  • GitHub #22 constexprサポートを追加
  • 小さなドキュメント修正

Uuid

  • 破壊的変更 GitHub #61 random_generatorがコピー可能でなくなった
  • GitHub #53 OSが提供するエントロピーを直接使用するために、random_generatorを最適化
  • UUIDのバルク生成のために、random_generator_mt19937を追加
  • エントロピーの取得エラーを、無視するのでなく処理するようにした
  • GitHub #24 Windows UWPをサポート
  • CloudABIをサポート

Variant

  • GitHub #42, GitHub #46 プリプロセッサによる関数引数の生成やメタ関数生成の代わりに、可変引数テンプレートを使用するようにした。初期の修正を提供してくれたNikita Kniazev氏に感謝
  • GitHub 40, Trac #13288 apply_visitorからビジターへ引数を完全転送するよう修正。Paweł Dac氏に感謝
  • 小さな修正 (GitHub #41, GitHub #44を含む)

テスト済みコンパイラ

主要なテストコンパイラ:

  • Linux:
    • Clang: 3.0, 4.0.1, 5.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1
    • 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.1
    • Clang, C++17: 5.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 7.2.0
    • 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, 7.2.0
    • GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0
    • GCC, C++17: 7.2.0
    • Intel, C++14: 18.0
  • OS X:
    • Clang: 9.0.0
    • Clang, C++11: 9.0.0
    • Clang, C++14: 9.0.0
    • Clang, C++1z: 9.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, 7.1.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1

追加して含まれるテストコンパイラ:

  • Linux:
    • Clang: 3.0, 3.8.1, 4.0.1, 5.0.1
    • Clang, C++0x: 3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1
    • 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.1
    • Clang, C++17: 5.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 4.9.2, 5.4.0, 7.2.0
    • 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, 7.2.0
    • GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0
    • GCC, C++17: 7.2.0
    • Intel, C++14: 18.0
  • OS X:
    • Clang: 9.0.0
    • Clang, C++11: 9.0.0
    • Clang, C++14: 9.0.0
    • Clang, C++1z: 9.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, 7.1.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

翻訳

Akira Takahashi, Yoshinari Takaoka, Kohei Takahashi