本家リリースノート:
- https://svn.boost.org/svn/boost/website/public_html/live/feed/history/boost_1_51_0.qbk
- http://www.boost.org/users/history/version_1_51_0.html
新ライブラリ
- Context
- コンテキストスイッチライブラリ
- 作者:Oliver Kowalke
更新ライブラリ
- Algorithm
- Asio
- Config
- Chrono
- Graph
- Hash
- Lexical cast
- Math
- Meta State Machine
- Proto
- Ratio
- Regex
- Thread
- Unordered
- Wave
Algorithm
is_sorted_until
の値が重複している区間に対する挙動をC++11標準の挙動に修正- 範囲バージョンが無かった検索アルゴリズムに範囲バージョンを追加
unhex
は不正な入力に対してBoost.Exceptionを用いて例外を送出するようになった
Asio
ip::tcp::iostream
のC++11での非互換性を修正(#7162)- GCCの属性名との相互作用を防ぐために、ユーザー定義マクロをアンダースコアで装飾(#6415)
#include <cctype>
が抜けていたのを追加。MinGWで必要。- GCCのARM CPU向け組み込み
atomic
機能が利用可能な場合はそれを使用するようにした(#7140) strand
のデストラクト時に何もしない(no-op)ようにした。この修正によって、strand
オブジェクトが関連付けられているio_service
オブジェクトが破棄されたあとでも破棄可能になる- 新しいバージョンのglibcの場合、
epoll_create1()
関数を提供するようにした。だけどこの関数は常にENOSYS
で失敗する(#7012) - SSLの初期化に失敗した場合に例外を投げるようにした(#6303)
buffered_write_stream
の回帰バグを修正(#6310)- Linuxのx86、x86-64プラットフォームでの様々な小さいパフォーマンス向上を実装
Config
- C++11標準であることが明示されていないC++11向けマクロを非推奨にした。新しいマクロを使用するのが好ましい
- 編集注: 非推奨マクロ及び新しいマクロへの対応表は次を参照 Boost Deprecated Macros
Chrono
std::wstring
がサポートされない環境でのコンパイルエラーを修正 (#6241)- HP uX上で
pthread_getcpuclockid
が定義されてないことによるコンパイルエラーを修正 (#6918) - ドキュメントのC++0xをC++11に更新 (#6987)
time_point.hpp
のBoost.Systemへの依存を削除 (#7041)time_point.hpp
のtime.h
とCLOCK_REALTIME
への依存を削除 (#7042)BOOST_NO_EXCEPTIONS
が定義されていてもコンパイルできる様に修正 (#7058)clock_string<thread_clock>
が返す文字列のtypoを修正 (#7069)- クロスコンパイルのために
WinError.h
を小文字に修正 (#7081)
Graph
- Boost.Graphが提供する型の内部プロパティ、バンドルプロパティをリファクタリングし、名前付きパラメータをクリーンアップ
compressed_sparse_row_graph
の旧スタイル内部プロパティ(非バンドルプロパティ)を有効にした- バンドルプロパティは、すべてのグラフ型とアダプタで動作しなければならない
- バグ修正
Hash
- C++11標準のスマートポインタをサポート
- 暗黙の型変換を回避するために、
hash_value()
関数をSFINAEを使用するよう修正 - 新しいコンフィグマクロを使用
Lexical cast
- パフォーマンスの改善、
boost::array<character_type, N>
とstd::array<character_type, N>
のメモリ使用量の削減 volatile
修飾された入力値に対する実行時アサーションを修正 (#7157)
Math
- 新しいコンフィグマクロを使用
Meta State Machine
- 受け取り可能なイベントとして
boost::any
(参照)とkleene
(参照)をサポート - バグ修正:
fsm
内部テーブルでのnone
(複合)イベントでのコンパイルエラーを修正 - バグ修正:
euml::defer_leading
のスタックオーバーフローを修正
Proto
- Ptoro式の擬似的なパラメータパックの展開をサポート
Ratio
- コンパイルエラーのためのワークアラウンド : テンプレートパラメータ定数
n1
に依存した部分特殊化(#7075)
Regex
- 新しいコンフィグマクロを使用
Thread
- MinGW/gcc4.5でリンクエラーが起きるのを修正 (#4258)
- プロセスが終了する際に
set_tss_data
でアクセス違反が発生する問題を修正 (#4885) - Intelコンパイラで
/debug:parallel
を使用した際にmutex
が永遠に待ち続けるのを修正 (#6931) - ヘッダファイルが不足している問題を修正 (#7044)
BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0
でthread::op==
,thread::op!=
の定義がされない問題を修正 (#7052)current_thread_tls_key
の初期化順を修正 (#7066)boost::allocator_arg
の多重定義エラーを修正 (#7074)- 64bit Windows環境下での警告を修正 (#7078)
- #6130で適用された
condition_variable::timed_wait
へのworkaroundを巻き戻し (#7089)
Unordered
- C++11コンパイラでC++03のアロケータを使用する場合の、コンストラクト/デストラクトの問題を修正(#7100)
- 例外を無効にしている環境でコンパイルできるように
try
/catch
を削除 - GCC 3.4をサポートするようにSFINAEを調整 (#7175)
- 新しいコンフィグマクロを使用
Wave
lexing_exception
でのメモリへの不正な書き込みを修正 (#7050)- プリプロセス済み行にディレクティブがあっても処理をしないように修正 (#7159)
- 編集注: この挙動は標準で定められた挙動
- コマンドラインオプションを
--c++0x
から--c++11
に変更- 編集注:
--c++0x
オプションは使用されない
- 編集注:
テスト済みコンパイラ
- Linux
- GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7
- GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2
- Intel: 11.1, 12.0, 12.1
- LLVM Clang: 2.8
- OS X
- GCC: 4.4
- GCC, C++11 mode: 4.4
- Intel: 11.1, 12.0
- Windows
- GCC, MinGW: 4.4.0, 4.4.7, 4.5.4, 4.6.3
- Visual C++: 8.0, 9.0, 10.0
- FreeBSD
- GCC: 4.2.1(32/64bit)
追加のテスト済みコンパイラ
- Linux
- LLVM Clang: 3.0, subversion
- GCC: 4.2.4, 4.3.4, 4.4.4, 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1
- GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3
- pgCC: 11.9
- Intel: 10.1, 11.1, 12.0, 12.1
- Visual Age: 10.1
- OS X
- LLVM Clang: subversion
- LLVM Clang, C++11 mode: subversion
- Intel: 11.1, 12.0
- GCC: 4.4
- GCC, C++11 mode: 4.4
- Windows
- Visual C++: 8.0, 9.0, 10.0
- GCC, MinGW: 4.4.0, 4.6.3, 4.7.0
- AIX
- IBM XL C/C++ Enterprise Edition: V12.1.0.0
- FreeBSD
- GCC: 4.2.1(32/64bit)
- Solaris
- Sun: 5.10
翻訳
Akira Takahashi, Kohei Takahashi