このリリースは、新しいC ++ 11標準を広範囲にサポートしているため、主にC ++プログラマーを待ち望んでいます。
最も注目すべきイノベーション:
拡張フレンド構文:
template<class W> class Q { static const int I = 2; public: friend W; }; struct B { int ar[Q<B>::I]; };
キーワードfinalおよびoverride
struct B { virtual void f() const final; virtual void f(int); }; struct D : B { void f() const; // error: D::f attempts to override final B::f void f(long) override; // error: doesn't override anything void f(int) override; // ok }; struct E final { }; struct F: E { }; // error: deriving from final class
非静的メンバーの初期化。
struct A { int i = 42; } a; // initializes ai to 42
ユーザーリテラル。
constexpr long double operator"" _degrees (long double d) { return d * 0.0175; } long double pi = 180.0_degrees;
エイリアス宣言。
テンプレートの高度なtypedef。 明確にしてくれたkharvdに感謝します。
template <class T> using Ptr = T*; Ptr<int> ip; // decltype(ip) is int*
デザイナーの委任(乾杯、乾杯、最もおいしい!)
struct A { A(int); A(): A(42) { } // delegate to the A(int) constructor };
また、C ++ 11の標準ライブラリサポートの大幅な改善。
リリースに関するその他の変更点および詳細情報は、 こちらをご覧ください。
UPD: 03.24.2012 Debianのsidブランチにビルドが登場しました。