Релиз GCC-4.7

в 7:47, , рубрики: c++, c++11, gcc, open source, Компиляторы, метки: , ,

Сегодня ночью вышел долгожданный GCC 4.7, выпуск которого приурочен к 25-летию проекта.

Долгожданным этот выпуск является прежде всего для программистов C++, так как несет с собой обширную поддержку нового стандарта С++11.

Наиболее заметные нововведения:

Расширенный синтаксис friend:

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 a.i to 42

Пользовательские литералы.

constexpr long double operator"" _degrees (long double d) { return d * 0.0175; }
long double pi = 180.0_degrees;

Alias-declarations. (Не знаю как перевести на русский)

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
};

A также значительное улучшение поддержки standard library для C++11.

Остальные изменения и более подробную информацию по релизу можно посмотреть здесь

Автор: Vass

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js