本家リリースノート:
- https://github.com/boostorg/website/blob/master/feed/history/boost_1_67_0.qbk
- http://www.boost.org/users/history/version_1_67_0.html
リポジトリは以下:
リポジトリからのビルド方法は、egtraさんのブログを参照:
既知の問題
- FreeBSDでのコンパイルエラーを修正
- Pythonの自動リンクを修正
新ライブラリ
- Contract
- C++用の契約プログラミングライブラリ。契約プログラミングの全ての機能をサポートしている: サブ契約、クラスの不変条件、事後条件 (古い値と戻り値)、事前条件、表明失敗時の挙動をカスタマイズ (例として、例外を投げるかプログラムを異常終了させるか)、コンパイルに含めるかどうかと表明のチェックをオプショナルに、などなど。作者Lorenzo Caminiti氏
- HOF
- 高階関数 (Higher-order functions) のライブラリ。作者Paul Fultz II氏
更新ライブラリ
- Asio
- Atomic
- Beast
- ContainerHash
- Context
- Core
- Coroutine2
- DateTime
- DLL
- Fiber
- Filesystem
- Fusion
- Geometry
- Locale
- Log
- Math
- Multi-index
- Multiprecision
- Optional
- Phoenix
- PolyCollection
- Python
- Spirit
- Stacktrace
- Test
- Type Index
- Type Traits
- Utility
- Unordered
- Units
- Uuid
- Variant
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 ofboost::context::detail
」というエラーになる
Core
to_address
とpointer_traits
に、C++2aの設計を反映させた (P0653R2)
Coroutine2
- GitHub #13 プル型コルーチンの起動直後に投げられた例外が再送されなかった問題を修正
DateTime
- さまざまな2038年問題 (32ビット問題) を修正
- GitHub #56, GitHub #58, GitHub #70 1.66.0で導入したバイナリシリアライゼーションのレグレッションを修正
- Trac #4430, Trac #11087, GitHub #68 タイムゾーンのデータベースファイルを更新
- Trac #1078, GitHub #69
from_iso_string
を拡張し、to_iso_string
が出力する特殊な値を読めるようにした - Trac #13159, Trac #12630, GitHub #71 さまざまな問題を解決するために、サポートする年の最大値を10000から9999に変更した
- Trac #11142, GitHub #63
boost::date_time::period_parser::delimiter_strings
がなにもしていなかった - Trac #11168, GitHub #64 無限大のような特殊な値を整数に変換できないようにした
- Trac #12363, GitHub #60
int_adapter
内でのis_signed
を定数のまま使用するようにした - Trac #12910, GitHub #59
boost::date_time::time_input_facet
で%j
(その年の何日目か) のみを使用した場合に例外が送出される問題を修正 - Trac #13194, GitHub #54
time_input_facet
が%e
(2桁スペース埋めの日) がパースできない問題を修正 - GitHub #52, GitHub #72 プロジェクトの測定と品質を向上させるために、GitHubのCIビルド環境を改善
- Trac #3606, Trac #9882, GitHub #62 コンパイラの警告を修正
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
- GitHub #62, GitHub #43, GitHub #50, GitHub #59
main()
関数の前でパス操作したときにクラッシュする問題に対して、静的変数の初期化を修正
Fusion
- GitHub #164 MSVC 2017でコンパイルエラーとなるため
fusion::map
でのSFINAEをテンプレートパラメータへと移した - GitHub #166
fusion::vector
がCWG 945に対応していないコンパイラでエラーとなっていたのを修正 - GitHub #168 エラーメッセージをわかりやすくするためシーケンスコンバータに要素数の事前チェクを追加
- GitHub #171
fusion::tag_of
とfusion::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
/ceil
とcpp_bin_float
のバグを修正 - GitHub #30 変換先の型が
*this
の型から直接的に構築できる場合に、明示的な型変換演算子を無効にした - Trac #13124 MPIR-3.0の新たな変更に対応した
Optional
- GitHub #46 問題 (訳注:
Optional<X>
が、T という名前が付いた enum を持っていると VS2015 でコンパイルできない) を修正 - コンパイル時に
-Wzero-as-null-pointer-constant
が出る問題を修正
Phoenix
- Trac #8187, GitHub #56, GitHub #57 ドキュメントとコード例の修正
- Trac #12733, GitHub #58, GitHub #61 C++11で配列型を使用した式がコンパイルエラーとなっていたのを修正
- GitHub #62, GitHub #64, GitHub #66, GitHub #67 Protoのビルトインを使用し最近のMSVCにおけるラムダ式のコンパイルエラーを修正
- 訳者註: C++11のラムダ式ではなく
phoenix::lambda
のこと
- 訳者註: C++11のラムダ式ではなく
- GitHub #59 C++17で非推奨となった
std::iteratror
の使用をやめた。Daniela Engertに感謝
PolyCollection
- メンテナンス上の修正
Python
- ライブラリ名 (.aや.lib) に、Pythonバージョン名がサフィックスとして付くようになった。例として、Python 2.7用にコンパイルすると、
boost_python27
とboost_numpy27
という名前のライブラリファイルが生成される。関連するBoost.Buildの修正と組み合わせることで、複数のPythonバージョンを一度のビルドプロセスでビルドできるようになった
Spirit
Spirit X3
- 破壊的変更 GitHub #239
with_context
を削除 - GitHub #241
x3::variant
とforward_ast
にnoexcept
を追加 - 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_line
とget_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_function
とis_member_function_pointer
を更新 is_default_constructible
とstd::pair
向けのワークアラウンドを追加- C++11より前の言語バージョン向けに、
is_nothrow_swappable
の実装を追加
Utility
- 破壊的変更
boost::next
とboost::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