[dcl.fct]
Изменение: сделайте спецификации исключений частью системы типов.
Обоснование: повышение безопасности типов.
Влияние на исходную функцию:
действительный код C ++ 2014 может не скомпилировать или изменить значение в этом международном стандарте:
void g1() noexcept;
void g2();
template<class T> int f(T *, T *);
int x = f(g1, g2); // ill-formed; previously well-formed
[dcl.init.aggr]
Изменение: определение агрегата расширено для применения к определяемым пользователем типам с базовыми классами.
Обоснование: для повышения удобства инициализации агрегата.
Влияние на исходную функцию:
действительный код C ++ 2014 может не компилироваться или давать другие результаты в соответствии с настоящим международным стандартом; инициализация из пустого списка инициализаторов будет выполнять агрегатную инициализацию вместо вызова конструктора по умолчанию для затронутых типов:
struct derived; struct base { friend struct derived; private: base(); }; struct derived : base {}; derived d1{}; // Error. The code was well-formed before. derived d2; // still OK