Effect on original feature: Valid C++ 2014 code may fail to compile or may change meaning in this
revision of C++.
Specifically, constructing a std::function with
an allocator is ill-formed and uses-allocator construction will not pass an
allocator to std::function constructors in this revision of C++.
Change: Different constraint on conversions from unique_ptr.
Rationale: Adding array support to shared_ptr,
via the syntax shared_ptr<T[]> and shared_ptr<T[N]>.
Effect on original feature: Valid C++ 2014 code may fail to compile or may change meaning in this
revision of C++.
[Example 1: #include<memory>
std::unique_ptr<int[]> arr(newint[1]);
std::shared_ptr<int> ptr(std::move(arr)); // error: int(*)[] is not compatible with int* — end example]