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ブランチにビルドが登場しました。

Source: https://habr.com/ru/post/J140557/


All Articles