最終更新日時:
が更新

履歴 編集

Boost 1.71.0リリースノート

本家リリースノート:

リポジトリは以下:

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

新ライブラリ

  • Variant2
    • valuelessにならず、強い例外安全性をもつstd::variantの実装。作者Peter Dimov

更新ライブラリ

Align

  • align_upalign_downの整数版を、全ての整数型向けにサポート
  • aligned_allocatorの実装を改善し、void型への特殊化を要求しないようにした
  • aligned_allocatorpropagate_on_container_move_assignmentis_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氏)
  • addsubに対する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 of boost::detail::aligned_storage」という内容のエラーが起きていた
    • GitHub #114 small_vectornoexcept仕様を修正
    • 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より大きい範囲を返せるようにした
  • 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 newoperator 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::hashstd::hashのサポートを追加
  • GitHub #48 デフォルトコンストラクタを非explicitにし、コピー初期化構文を許可

Endian

  • 値型テンプレートパラメータの要件を明確にした
  • floatdoubleのサポートを追加
  • endian_loadendian_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

  • メンテナンス上の修正

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::updateboost::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の変換を行うテストを追加
  • メンテナンス上の修正

Log

  • 新機能
    • basic_formatting_ostreamでのC++17 std::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 任意の関数オブジェクトを渡せる名前付きパラメータfilterformatを追加。これは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_ostreambasic_record_ostreamがユーザー定義型へのポインタに対するストリーム演算子のオーバーロードを定義できるようにした
  • より詳細な変更はChangelogを参照

Math

  • 新機能
    • Catmull-Rom interpolatorがC++11で動作するようにした
    • カーディナル2次B-スプライン補間 (Cardinal quadratic B-spline interpolation)
    • 楕円積分のドメイン拡張
    • sin_picos_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
  • バグ修正
    • BOOST_METAPARSE_STRINGが範囲外の文字をテンプレート引数として使用できなかった問題を修正
    • C++14においてany_of_c<>が空配列を作成しなかった問題を修正

Move

  • GitHub #26 adaptive_sort_combine_blocks内の最後のイテレーションにおいて、イテレータに対する不正なインクリメント・デクリメントが行われていた問題を修正

Multi Array

  • Boost.Coreのalloc_construct_nalloc_destroy_nを使用することでアロケータサポートを簡略化 (Glen Fernandes)

Multi-index

  • GitHub #24 参照修飾とCV修飾の組み合わせをサポートするため、mem_funconst_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 keynoexcept付き関数を正しくハンドリングできるようにした

Outcome

  • 機能拡張
    • GitHub #184 Boostのリリースマネージャからの要求に従い、version.hpprevision.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を分けた
  • バグ修正
    • 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_wrapperstd::ref()のサポートを追加
  • GitHub #18 boost::parameter::requiredboost::parameter::optionalboost::parameter::deducedメタ関数の定義を、boost/parameterディレクトリ内に移動
  • GitHub #20 Boost.Parameterを有効にした関数呼び出し演算子を生成できるようにした。<boost/parameter/preprocessor.hpp>に、コード生成マクロBOOST_PARAMETER_FUNCTION_CALL_OPERATORBOOST_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 #52 可変引数テンプレート関数boost::parameter::compose()を追加。これは名前付きパラメータをとって引数パックにして返す。
    • GitHub #61 完全転送をサポートしないコンパイラの場合、設定マクロBOOST_PARAMETER_COMPOSE_MAX_ARITYboost::parameter::compose()がとれる引数の最大数になる
  • 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_ptrweak_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を追加

Utility

  • あらゆる種類の文字列を出力ストリームに最適に書き込めるユーティリティ関数として、ostream_stringboost/utility/ostream_string.hppに実装した。この関数は[ostream.formatted.reqmts]の要件を満たす (Glen Fernandes氏)
  • basic_string_viewbasic_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

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

翻訳

Akira Takahashi