GCC-4.7 рд░рд┐рд▓реАрдЬрд╝

рдЖрдЬ рд░рд╛рдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдЬреАрд╕реАрд╕реА 4.7 рдЖрдпрд╛, рдЬрд┐рд╕рдХреА рд░рд┐рд▓реАрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА 25 рд╡реАрдВ рд╡рд░реНрд╖рдЧрд╛рдВрда рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИред

рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдП C ++ 11 рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдирд╡рд╛рдЪрд╛рд░:

рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдорд┐рддреНрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕:
template<class W> class Q { static const int I = 2; public: friend W; }; struct B { int ar[Q<B>::I]; }; 


рдХреАрд╡рд░реНрдб рдЕрдВрддрд┐рдо рдФрд░ рдУрд╡рд░рд░рд╛рдЗрдб
 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; 


рдЙрдкрдирд╛рдо-рдШреЛрд╖рдгрд╛рдУрдВред (рдореИрдВ рд░реВрд╕реА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛)
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рдЯрд╛рдЗрдкрдлреЗрдбред рдзрдиреНрдпрд╡рд╛рдж рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 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 рдбреЗрдмрд┐рдпрди рдХреЗ рдХрд┐рдирд╛рд░реЗ рд╢рд╛рдЦрд╛ рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдб рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред

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


All Articles