template <class U, class E>
unique_ptr& operator=(unique_ptr<U, E>&& u)noexcept;
Этот оператор ведет себя так же , как в первичном шаблоне, за исключением того, что она не будет участвовать в разрешении перегрузки , если все из следующих условий не выполняется, где UP находится unique_ptr<U, E>:
U - это тип массива, а
pointer того же типа element_type*, что и, и
UP::pointer того же типа UP::element_type*, что и, и
UP::element_type(*)[] конвертируется в element_type(*)[], и
is_assignable_v<D&, E&&> есть true.
[ Note: Это заменяет спецификацию разрешения перегрузки основного шаблона ] — end note