GCC-4.7リリース

今夜は待望のGCC 4.7が登場し、そのリリースはプロジェクトの25周年に捧げられています。



このリリースは、新しい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ブランチにビルドが登場しました。



All Articles