- PVSM.RU - https://www.pvsm.ru -

Релиз GCC-4.7

Сегодня ночью вышел долгожданный 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.

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

Автор: Vass


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/4099

Ссылки в тексте:

[1] здесь: http://gcc.gnu.org/gcc-4.7/changes.html