cpp/memory/unique ptr/operator=

@1@ Move assignment operator. Transfers ownership from to  as if by calling  followed by an assignment of get_deleter from. If is not a reference type, requires that it is nothrow-. If is a reference type, requires that  is nothrow-. The move assignment operator only participates in overload resolution if is.

@2@ Converting assignment operator. Behaves same as, except that
 * This assignment operator of the primary template only participates in overload resolution if is not an array type and  is implicitly convertible to  and  is.
 * This assignment operator in the specialization for arrays, behaves the same as in the primary template, except that will only participate in overload resolution if all of the following is true:


 * is an array type
 * is the same type as
 * is the same type as
 * is convertible to
 * is

@3@ Effectively the same as calling.

Note that 's assignment operator only accepts rvalues, which are typically generated by std. (The class explicitly deletes its lvalue copy constructor and lvalue assignment operator.)