本家リリースノート:
http://www.boost.org/users/history/version_1_47_0.html
新ライブラリ
- Chrono
- 有用な時間ユーティリティ。
- 作者:Vicente J. Botet Escribá
- Geometry
- 幾何学ライブラリ。
- 作者:Barend Gehrels, Bruno Lalande and Mateusz Loskot
- Phoenix
- 呼び出し側での小さな無名関数の定義と、より多くのもの。
- 作者:Joel de Guzman, Dan Marsden and Thomas Heller
- Ratio
- コンパイル時有理数ライブラリ。
- 作者:Vicente J. Botet Escribá
更新ライブラリ
- Accumulators
- Asio
- Config
- DateTime
- Dynamic Bitset
- Function
- Foreach
- Function Types
- Graph
- Iostreams
- Iterator
- Lexical Cast
- Logic
- Math
- Meta State Machine
- MultiIndex
- Random
- Proto
- Range
- Spirit
- Tokenizer
- Utility
- Uuid
- Wave
更新ツール
Accumulators
- 新たな統計アキュムレータを追加 :
sum_kahan
,sum_of_weights_kahan
,sum_of_variates_kahan
Asio
- シグナルハンドリング。
signal_set
クラスを追加。 - 非同期プログラムのデバッグ支援。
BOOST_ASIO_ENABLE_HANDLER_TRACKING
をdefineすることで利用可能。 - ソケット
iostream
に対するタイムアウト。ip::tcp::iostream
でexpires_at()
もしくはexpires_from_now()
を使用する。 - ソケット
iostream
にerror()
メンバ関数を追加。 basic_deadline_timer::cancel_one()
を追加。この関数は、タイマーに対する待機ハンドラを解除するのに使用できる。ハンドラはFIFO順に解除される。- 完了条件の
transfer_exactly()
関数を追加。これは、バッファの合計サイズ(またはバッファのシーケンス)が大きい場合でも、指定されたバイト数を送受信するのに使用することができる。 - 接続操作の合成。
connect()
,async_connect()
フリー関数の追加。これらの操作は、ソケットが正常に接続されるまで、リスト内の各エンドポイントを試みる。IPv4とIPv6の両方で動作するTCPクライアントを作成するために便利。 - 個々のバッファに加え、バッファシーケンスを動作するように
buffer_size()
関数を拡張。 buffer_copy()
関数を追加。個々のバッファと、バッファシーケンスの間で生のバイトデータをコピーするのに使用できる。read()
,read_at()
,write()
,write_at()
のno throw版オーバーロードを追加。- 終了ハンドラが必要な型要件を満たさない場合のよりフレンドリーなコンパイルエラーを追加。C++0xの
static_assert
が利用可能な環境で自動的にONになる(g++やVC10以降など)。BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS
をdefineすることでこのモードを無効にできる。 - SSL実装の書き直し。新たな実装は、高速コンパイル、パフォーマンスの大幅向上、カスタムメモリアロケートとハンドラの呼び出しをサポートする。証明書検証コールバックなどの新たなAPI関数が含まれていて、エラー報告機能の強化がある。新たな実装は、ほとんどの場合に古いソースに互換性がある。ただし、必要に応じて
BOOST_ASIO_ENABLE_OLD_SSL
を定義することで以前の実装を使用する可能性がある(#3702, #3958)。 - AsioのSSL機能を使うために、あなたのプログラムにひとつのソースファイル
boost/asio/ssl/impl/src.hpp
を含める、というように、分割コンパイルサポートを変更した。 - SSL v2を明示的に無効化できるようにSSL実装を修正(#5453)。
is_loopback()
,is_unspecified()
,is_multicast()
関数を、ip::address
,ip::address_v4
,ip::address_v6
の全てで使用できるよう修正(#3939)。- ソケットやdescriptorでノンブロッキングの振る舞いを管理するための
non_blocking()
関数を追加。non_blocking_io
という名前のio_control
コマンドは、この新たな関数によって非推奨(deprecated)となる。 - ソケットやdescriptorでノンブロッキングモードの基礎的なものをを管理するための、
native_non_blocking()
関数を追加。この関数は、ソケットオブジェクトのユーザーに透過的な方法での非同期操作として、任意のノンブロッキングシステムコールのカプセル化を許可するものである。この関数は、ソケットやdescriptorの同期操作の挙動に影響を及ぼす。 - socket acceptorのための
io_control()
メンバ関数を追加(#3297)。 - posix descriptorに
release()
メンバ関数を追加。この関数は、ネイティブなdescriptorの所有権を解放する(#3900)。 - sequenced packet sockets(
SOCK_SEQPACKET
)のサポートを追加。 io_service
が停止しているかどうかを判定するためのio_service::stopped()
関数を追加(reset()
呼び出しは、run()
,run_one()
,poll()
,poll_one()
呼び出しの前に必要になる)。- C++0x標準ライブラリとの整合性のために、
native_type
typedefを非推奨とし、native_handle_type
を推奨とした。また、native()
メンバ関数を非推奨とし、native_handle()
メンバ関数を推奨とした。 - C++0xのmoveに対応。ソケット、シリアルポート、posix descriptor、Windowsハンドルのムーブコンストラクト、ムーブ代入に対応。
- (C++0xのmoveなどにより)ハンドラ関数オブジェクトのコピーを減らした。
fork()
システムコールのサポートを追加。fork()
を使用するプログラムは、io_service.notify_fork()
を適切なタイミングで呼び出す必要がある。この機能の2つのサンプルを追加した(#3238, #4162)。close()
システムコールによって報告されたエラーのクリーンアップ。ほとんどのオペレーティングシステムは、EWOULDBLOCK
によってclose()
が失敗するが、それはブロッキングモードを設定して呼び出しを再起動していない場合に起こる。その他のエラーの場合には、descriptorは閉じられると想定する(#3307)。asio::buffer()
関数に、std::array
のオーバーロードを追加。- その実装がBoostと同等以上である場合に、C++0x標準ライブラリの
array
,shared_ptr
,weak_ptr
,atomic
を使用するよう内部実装を修正。 - C++0x可変引数テンプレートが利用可能である場合に、Boost.Preprocessorによるオーバーロードの代わりにそちらの実装を使用するようにした。
- 例外の
what()
メンバ関数で返されるメッセージに、関数名を含めるようにした。 - MinGWでの未初期化変数警告を修正。
shutdown_service()
メンバ関数をprivate
にした。- ソケットオプション関数のテストを追加。
- Boost.Asioの例でBoost.Threadを使用しないようにした。
- IPv4とIPv6のための、OSが提供するマクロへの依存をやめた(#3741)。
ip::basic_endpoint<>
(と同じくip::tcp::endpointとip::udp::endpoint
も)のサイズを小さくした。- 任意のソケットやdescriptorが、
dup()
を持っている場合にassign()
を使用するようリアクターのバックエンドを変更し、リアクターの明示的な要件から削除(#4971)。 - 非推奨だったメンバ関数
io_service()
を削除した。get_io_service()
を使用するべきである。 ip::tcp
,ip::udp
,ip::icmp
クラスから、非推奨だったtypedefであるresolver_query
,resolver_iterator
を削除した。buffers_iterator<>
とip::basic_resolver_iterator
のvalue_type
を非const byte
型に修正。- g++の-Wshadowコンパイルオプションによる警告を修正(#3905)。
- 一部の環境でのコンパイラ警告を抑制するために、
FIONBIO
定数をint
に明示的にキャストするようにした(#5128)。 - acceptorの例で、エラーを許容するように修正(#5124)。
tick_count_timer
の例での間違いを修正。signed
なduration
を作るようにした(#5418)。
Config
- マクロの名称変更(#1988)
BOOST_NO_THREADEX
->BOOST_HAS_THREADEX
BOOST_NO_GETSYSTEMTIMEASFILETIME
->BOOST_HAS_GETSYSTEMTIMEASFILETIME
DateTime
- サンプルの間違いを修正。typoなど(#4920)。
- ドキュメントにあるサンプルの変数名、関数名などの間違いを修正(#3651)。
- サンプルの間違いを修正。
end_of_month_day()
->end_of_month()
(#4845)。 - OpenVMSの64ビットプラットフォームサポートを追加(#4475)。
- GCC 4.3での
time_facet
の警告を修正(#4952)。 time_serialize
で、依存名に対してtypename
が付いていなかったのを修正(#5345)。- clangでの、二重カッコによる警告を修正(#5250)。
- valgrindプラットフォームでの警告を修正(#4798)。
- オーストラリアでの、夏時間の開始と終了が間違っていたので修正(#4754)。
- Australia/Euclaのタイムゾーンデータベースが間違っていたので修正(#4411)。
- SCCキーワードのエスケープに関するバグ修正(#5126)。
- タイムゾーンデータベースの、ファイルからの読み込みをサポート(#2475)。
- グローバルロケールを使用した場合に、
ymd_formatter
で年が2,008
のようにフォーマットされる問題を修正(#1674)。
Dynamic Bitset
- GCCで
-Wshadow
コンパイラオプションを付けた際に出る警告を修正(#5439)。
Function
- GCCで
-Wold-style-cast
コンパイラオプションを付けた際に出る警告を修正(#3410)。 - MSVCでの未使用変数警告を修正(#3618)。
- Visual Age C++の古いバージョンのためのworkaroundに、新しいバージョン(
__IBMCPP__ >= 800
)が適用されないよう修正。新しいバージョンでは、boost::function
の引数が11個以上使用できる(#3912)。 - VC10で、
function
内部でboost::mem_fn
が呼ばれるべきところを、ADLによってstd::mem_fn
が探索されコンパイルエラーになっていた問題を修正(#4073)。 boost::function
に、関数の参照を持たせるためにboost::ref
でラップして渡すとコンパイルエラーになる問題を修正(#4325)。boost::function
内部のstored_vtable
が非const
のために書き込み可能メモリに配置されてしまう問題を修正(#4717)。- 関数呼び出し演算子で、
inline
キーワードの書く場所を間違えていたので修正(#4765)。
Foreach
- C++0xムーブセマンティクスに対応。
Function Types
- バグ修正
Graph
- バグ修正
- 非推奨な関数であった
kolmogorov_max_flow
を削除した。以降はboykov_kolmogorov_max_flow
を使う。 - Boost.Type_Traitsに同等の機能があるため
<boost/graph/detail/is_same.hpp>
ヘッダを削除した
- 非推奨な関数であった
Iostreams
Iterator
function_input_iterator
追加 (#2893)- バグ修正
Lexical Cast
Source
とTarget
型の特殊化を追加し、パフォーマンスとメモリ効率を改善した- ドキュメント更新
Logic
Math
- nonfinite facetを容易に追加するために、
changesign
関数をsign.hpp
に追加した - Johan Rade氏によるnonfinite facetと、そのテスト、C99形式の無限大と
NaN
での利用例、およびドキュメントの追加 - Johan Rade氏による
changesign
のテストとドキュメントの追加
Meta State Machine
- バックエンドに
stop()
メソッドを追加 - Boost.Phoenix ファンクタのeUML表現を部分的にサポートした
- ステートスイッチングが発生した際に選択する可能性を考慮
- バグ修正
MultiIndex
- Boost.Refに関連する
composite_key_compare
のADL問題を修正した - メンテナンス上の修正
Random
新たな標準(C++0x)に同期
- 多くの分布を追加:
chi_squared_distribution
negative_binomial_distribution
fisher_f_distribution
student_t_distribution
weibull_distribution
extreme_value_distribution
discrete_distribution
piecewise_constant_distribution
piecewise_liear_distribution
- 名称変更:
uniform_int
→uniform_int_distribution
uniform_real
→uniform_real_distribution
- 全ての分布クラスに以下のメンバを追加:
param_type
,param
, ストリーム演算子, 比較演算子,min
,max
- 分布クラスを、
variate_generator
を通さずに直接ジェネレータを使用できるようにした。 geometric_distribution
とlognormal_distribution
のパラメータの意味を変えた。gamma_distribution
に第2パラメータを追加。seed_seq
を追加し、対応するコンストラクタとseed
オーバーロードジェネレータを追加。-generate_canonical
を追加。- エンジンテンプレートの名称変更。たとえば、
mersenne_twister
はmersenne_twister_engine
となる。 - 新たなエンジンアダプタ
independent_bits_engine
。 - 新たな事前定義
typedef
を追加:mt19937_64
,ranlux[24|48][_base]
,knuth_b
。 - シードアルゴリズムを更新。
discard
を追加。- 全ての定義済みエンジンで、符合あり型の代わりに符号なし型を使用するようにした。
バグ修正
- 全てのケースで剰余演算が実装されていなかったので、
linear_congruential_engine
がassert
する可能性があった。shuffle_output
は整数オーバーフローを起こす可能性があったため、今はshuffle_order_engine
を呼ぶようにした。 uniform_small_int
は現在、ドキュメント通りに動作する。
その他変更
binomial_distribution
とpoisson_distribution
のための新たな効率的なアルゴリズム。- 全ての機能を
boost::random
名前空間に移動。
下位互換性の問題
- シードアルゴリズムが変更した。これは標準との互換性のために避けられなかった。既存のいくつかのアルゴリズムに矛盾があったことは言うまでもない。
int
によるシード:lagged_fibonacci
とsubtract_with_carry
(つまりranlux
)を除くほとんどのジェネレータを変更する必要がある。- 別のジェネレータとジェネレータのシード:これは全てのジェネレータモデル
SeedSeq
を作ることで有効になっている。したがって、非Boost.RandomジェネレータでBoost.Randomジェネレータのシードを使用した場合、それはコンパイルに成功しない。アルゴリズムが変更されたため、このシード処理のメソッドを使用したコードが異なる値を生成する。 - イテレータの組からシードを生成する:全てではないがいくつかの場所で、暗黙的に要素が32ビット整数であることを仮定する。この要件を追加し、それに応じてアルゴリズムを更新した。ジェネレータの
value_type
が32ビット以上の場合には、動作を変更する必要がある。
- 名称変更
- クラス名が変更されたものには、古い名前によるラッパーを用意した。また、名前空間が移動された全てのもののために、
boost
名前空間でのusing
宣言を行うようにした。 - 分布クラスのいくつかのアクセッサ名が変更された。古いものと新しいもの両方を使用できる。
- クラス名が変更されたものには、古い名前によるラッパーを用意した。また、名前空間が移動された全てのもののために、
geometric_distribution
とlognormal_distribution
:実行時に異なる動作をするようになった。これまでの動作をするboost::geometric_distribution
とboost::lognormal_distribution
、新たな動作をするboost::random::geometric_distribution
とboost::random::lognormal_distribution
を提供する。- ストリーミング:
gamma_distribution
は新たなパラメータを持っているため、古いバージョンでストリーム演算子を使用して出力されたテキストを新しいバージョンで読み込むことはできない。 variate_generator
は現在、単なるラッパーである。ジェネレータの結果が分布の結果型と一致することを期待しているコードは動作しなくなる。これはBoost.Randomが提供する分布の問題ではない。- 戻り値の型:いくつかのジェネレータの
result_type
を変更した。標準に合わせて、いくつかの符号あり型は符号なし型に変更された。 has_fixed_range
:これは常にfalse
を返し、非常に有用ではあるが過度に複雑だった。最初にhas_fixed_range
をチェックせずにconst_min
,const_max
を使用していたのがはじめから間違いだった。
Proto
- コンパイルタイム改善のためにプリプロセス済みのマクロ(Pre-preprocessed)を用意した
- デフォルトのプリプロセッサ制限を引き上げた
- 式の引数の数(
BOOST_PROTO_MAX_ARITY
)を5から10に増やした - 関数呼び出しの引数の数(
BOOST_PROTO_MAX_FUNCTION_CALL_ARITY
)を5から10に増やした - 論理演算子の引数の数(
BOOST_PROTO_MAX_LOGICAL_ARITY
)を8から10に増やした
- 式の引数の数(
- 不要な
proto::expr
のインスタンス化を避けるためにproto::basic_expr
をさらに統合した
Range
破壊的変更
irange
で、step
が2以上のときの終端の計算が間違っていたので修正(#5544)
Spirit
Spirit V2.5
Boost 1.47.0でリリースされるBoost.Phoenix V3に対応した。
これによってユーザーコードに影響を与えることはない。
Boost.Phoenix V3を有効にするには、Spiritのヘッダをインクルードする前に以下のプリプロセッサ定数を定義する必要がある。
# define BOOST_SPIRIT_USE_PHOENIX_V3 1
Qi or Karmaの新機能
- ジェネリックで、階層的で、抽象構文木を表すことができる動的なデータ構造であるutreeを追加。これはSpirit.QiとSpirit.Karmaに統合される。これはほぼすべての構文を解析の属性として渡すことができる。同時に、その属性を使用して出力を生成できる。
- 新たなマクロ
BOOST_SPIRIT_TERMINAL_NAME
は、2つのパラメータをとる(ターミナルの名前と型)。ターミナルの名前のみを引数にとるBOOST_SPIRIT_TERMINAL
マクロもあり、これは「ターミナル名 +_type
」という型名を生成する。int_
のような名前の場合にはint__type
のような、C++言語でシステムに予約されているダブルアンダーバーを含む型が生成されるので注意。 - 数値パーサーで2..10と16の基数を許可。
- プレースホルダー
_val
が、トップレベルセマンティックルールの右辺で使用できるようになった。以下がその例である:
int i = 0;
BOOST_TEST(test_attr("456", int_[_val = _1], i) && i == 456);
この場合、parse()
または phrase_parse()
関数に渡された属性の値 _val
を指す。これはSpirit.Karmaでも同様に可能となる:
int i = 123;
BOOST_TEST(test("123", int_[_1 = _val], i));
この変更により_val
プレースホルダーがどこでも使えるようになり、セマンティックアクションのルールが統一される。
- Spirit.Karmaに、2..36基数のunsigned numericジェネレータのサポートを追加。
Qi or Karmaのバグ修正
int_(10)
のような整数リテラルのパース失敗時に入力を消費してしまう問題を修正mmap_file_iterator
の初期化に失敗する問題を修正(#5246)karma::real_policies
でconst
浮動小数点数を使用する際のconst
correctness問題を修正。パッチとテストを送付してくれたJeroen Habraken(a.k.a VeXocide)に感謝する。- Spirit.Qi
attr(attrib)
パーサー, Spirit.Qisymbols<>
パーサー, Spirit.Karmasymbols<>
ジェネレータでのコンテナ属性のプロパティハンドルを修正。これはBoost V1.46.1で壊れていた(この問題を報告してくれたAaron Graham, Joerg Beckerに感謝する)。 - streamパーサーコンポーネントが成功したときに、もとになる入力ストリームのイテレータを正しく調整するようstream パーサーを修正。Stackoverflowで問題を報告してくれたBrian O’Kennedyに感謝する。
- アダプトされたADTを使用するときにKarma数値ジェネレータが失敗する問題を修正(問題を報告してくれたColin Rundelに感謝する)。 破壊的変更
- Spirit.Qi
repeat
ディレクティブが失敗した場合に値を残し、その属性のコミット/ロールバックのセマンティクスを実装した。同様のコンポーネントが矛盾している動作を削除した。この機能に依存する既存のコードは破壊される。コードを修正する方法は、Spirit.Qihold
ディレクティブを参照。 - コンパイル時間を大きく低下させていた定義済みターミナルのインスタンス化を防ぐために、
BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
プリプロセッサマクロを追加した。BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
が定義されている場合は、ユーザーは必要なターミナルをインスタンス化する。したがって、using qi::uint_
の代わりにqi::uint_type uint_
のように書く。
Lexの新機能
lex::char_
とlex::string
を使用して、トークンの定義を作成中にトークンのid
を指定することを可能にした。両方のプリミティブはこの定義から生成されたトークンの要求されたトークンIDとして解釈され、2番目のパラメータを受け付けるようになった。- 新たなトークン型
lex::lexertl::position_token<>
を追加。これは本質的には、既存のlex::lexertl::token<>
によるプラグイン互換である。基になる入力シーケンスとして、iterator_range
を指すイテレータのペアを格納する。
Lexのバグ修正
- アクションに添付されたトークン定義のすべての状態(状態名
"*"
を使用する)を関連付けて問題を修正。
Making Stuff Work
- 属性がコンテナの場合(
traits::is_container
がtrue
を返す属性)に、古いカスタマイズポイントtraits::extract_from
の代わりに呼び出される、Spirit.Karmaカスタマイズポイントtraits::extract_from_container
を追加。 hold_any
型がテンプレート引数をとるようにした:basic_hold_any<Char>
。Char
は、ストリーム演算子(operator<<()
とoperator>>()
)で使用される。hold_any
は、typedef basic_hold_any<char> hold_any
と定義される。- セマンティックアクションで属性の互換性がサポートされた。これは破壊的な変更だが、
#define BOOST_SPIRIT_ACTIONS_ALLOW_ATTR_COMPAT
で新しい動作を定義する必要がある。規定ではこれまでの動作である。 - 属性互換性の選択肢をサポート。
- シーケンス&コンテナコンポーネント(list, Kleene, Plus, repeat)のコンテナ属性のための属性ハンドリングが書き直された。これによって多くの場合に予測可能な動作をするようになった。Thomas Taylor, Richard Crossley, Semen, Adalberto Casteloそして問題を報告し、支援してくれた方々に感謝する。
Tokenizer
- Visual Studio で
/W4
にてビルドすると、warning C4127(条件文が定数)がでる問題を修正(#4699)
Utility
- Visual Studio 2010でwarning number 4284がなくなったことによるwarningの抑制(#4432)
Uuid
- 例外を無効にした場合に
string_generator.hpp
がコンパイルエラーになる問題を修正(#5570) - VC8での暗黙の型変換警告を修正(#4601)。
- GHSコンパイラ(Green Hills Compiler)でこのライブラリが動作するようにした(#4991)。
- 論理演算子周りの警告を修正(#5145)。
- uuidのテストに、まだリリースされていない
lightweight_test_ex.hpp
を使用していたので修正(#5235)。
Wave
V2.3.0
#pragma wave option()
のプリプロセス後、連続した文字列リテラルを一つにまとめるようにした。- 空白文字のハンドリングを修正し、そのテストを追加 (
t_9_020.cpp
)。 - 新しいプリプロセスフック
locate_include_file
を追加。インクルードするファイルの決定方法をカスタマイズできる。 - Wave コマンドに新しいオプション
--noexpand
/-N
を追加。指定した名前のマクロ(オブジェクト形式でも関数形式でもOK)の展開を抑制できる。このオプションは、出力結果中のマクロ全部が実行されないだけでなく、Wave自身からもその存在が消されるので、よく考えて使うべきである。もし展開を抑制されたマクロがあとでどこかの#ifdef
に影響がある場合、予期しない結果を引き起こす可能性がある。 - Wave コマンドの対話モードで、定義された全マクロをコマンドラインに出すのを修正。
- #5554 の修正 (wave slex parser が
eol
の前にeof
を見つけると最終行を処理しない問題)。 - コンパイル時のオプション設定に、
BOOST_WAVE_WCHAR_T_SIGNEDNESS
を追加。これにはBOOST_WAVE_WCHAR_T_AUTOSELECT
,BOOST_WAVE_WCHAR_T_FORCE_SIGNED
, またはBOOST_WAVE_WCHAR_T_FORCE_UNSIGNED
を指定できる。デフォルトは auto select. #pragma
のオプション (output) を付けて実行した Wave コマンドがすぐに終了した場合、上書きせずに追記してしまう問題を修正。- #5569 を修正 (slex の CONTLINE が LF で改行するファイルでしか動かない)。
BoostBook
- doxygenタグをハンドル :
\see
,tparam
,ref
(クラスのみ) - クラスと関数のメモをサポート
Quickbook
- 見出しの一貫性あるID生成
- WindowsでのUnicodeサポートを改善
- 移植性のないWindowsのパスで警告を出力するようにした
[br]
の非推奨を取りやめ- copyright属性で、日付の範囲と、カンマ区切りされた節をサポート
- 簡単なマークアップ(例えばbold)のために、区切り文字のチェック機能を改善
- コードスニペット内でのコメントをそのまま使用するようにした
__FILENAME__
マクロが相対パスを生成するようにした- コード内でエスケープによる強調表示を許可
テスト済みコンパイラ
主要テストコンパイラ:
-
Linux:
- LLVM Clang 2.8
- GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.1, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0, 4.6.1
- GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
- Intel 12.0
-
OS X:
- Apple Clang 2.1
- Intel 11.1
- GCC: 4.2.1, 4.4.4
- GCC, C++0x mode: 4.4.4
-
Windows:
- Visual C++ 7.1, 9.0, 10.0
- GCC, mingw: 4.4.0
-
FreeBSD:
- GCC 4.2.1, 64 bit
- QNX:- QCC
追加のテストコンパイラ:
-
Linux:
- Clang from subversion, with GNU libstdc++.
- LLVM Clang 2.8
- GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.1, 4.5.2, 4.6.0, 4.6.1
- GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.2
- pgCC: 11.2
- Intel: 10.1, 11.0, 11.1, 12.0
- PathScale: 3.2
-
OS X:
- Clang from subversion, with GNU libstdc++.
- Intel 11.1
- GCC: 4.4.4
- GCC, C++0x mode: 4.4.4
-
Windows:
- Visual C++ 7.1, 9.0, 10.0
- Visual C++ with STLport: 9.0
- Visual C++, Windows Mobile 5, with STLport: 9.0
- GCC, mingw: 4.5.2
- GCC, C++0x mode, mingw: 4.5.2
-
AIX:
- IBM XL C/C++ Enterprise Edition, V11.1.0.0
翻訳
Akira Takahashi, zakkas783, digitalghost, yak_ex