Annex C (informative) Compatibility [diff]

C.4 C++ and ISO C++ 2014 [diff.cpp14]

C.4.9 Clause [utilities]: general utilities library [diff.cpp14.utilities]

[func.wrap]
Изменение: удалены конструкторы, использующие распределители.
Обоснование: Нет консенсуса по реализации.
Влияние на исходную функцию: действительный код C ++ 2014 может не компилироваться или может изменить значение в этом международном стандарте. В частности, построение std​::​function с помощью распределителя плохо сформировано, и конструкция uses-allocator не передает распределитель std​::​function конструкторам в этом международном стандарте.

[util.smartptr.shared]
Изменение: другое ограничение на конверсии из unique_­ptr.
Обоснование: добавление поддержки массивов с shared_­ptrпомощью синтаксиса shared_­ptr<T[]> и shared_­ptr<T[N]>.
Влияние на исходную функцию: действительный код C ++ 2014 может не компилироваться или может изменить значение в этом международном стандарте. Например:

#include <memory>
std::unique_ptr<int[]> arr(new int[1]);
std::shared_ptr<int> ptr(std::move(arr)); // error: int(*)[] is not compatible with int*