GCC 4.7 Release Series Changes, New Features, and Fixes
遅くなってしまいましたが、2012/03/22(木)にGCC 4.7.0がリリースされました。
リリースノートからC++11周りの変更点を抜粋します。
- C++11を使用可能にするためのオプションをこれまで-std=c++0x, -std=gnu++0x, -Wc++0x-compatを使用していたが、-std=c++11, -std=gnu++11, -Wc++11-compatを使用できるようにした。効果はこれまでと同じ。
- 拡張friend宣言をサポート
- override/finalキーワードをサポート
- ユーザー定義リテラルをサポート
- alias declaration, template aliasesをサポート
- 移譲コンストラクタをサポート
- atomicアクセスのC++11クラスをサポート
- C++11を有効にした場合の__cplusplusマクロの値を201103Lにした
- C++11のライブラリの至る所をnoexceptを使用するよう修正
- pointer_traits, allocator_traits, scoped_allocator_adaptorをサポート
- tupleのuses-allocatorによるコンストラクトをサポート
- vectorを、アロケータの要件を満たすよう修正
- monotonic_clockをsteady_clockに名前変更
- スレッドライブラリをより多くの環境で使用可能にした
- unordered連想コンテナのイテレータにデバッグモードを付けた
- 非staticデータメンバの初期化
それと、GCC拡張ですが、STMのための構文が使用可能になっています。
参照: GCC 4.7にはTransactional Memoryの拡張が入る予定