[unique.ptr.runtime.asgn] (original) (raw)
20 Memory management library [mem]
20.3 Smart pointers [smartptr]
20.3.1 Unique-ownership pointers [unique.ptr]
20.3.1.4 unique_ptr for array objects with a runtime length [unique.ptr.runtime]
20.3.1.4.3 Assignment [unique.ptr.runtime.asgn]
template<class U, class E> constexpr unique_ptr& operator=(unique_ptr<U, E>&& u) noexcept;
This operator behaves the same as in the primary template.
Constraints: Where UP is unique_ptr<U, E>:
- U is an array type, and
- pointer is the same type as element_type*, and
- UP::pointer is the same type as UP::element_type*, and
- UP::element_type(*)[] is convertible to element_type(*)[], and
- is_assignable_v<D&, E&&> is true.
[Note 1:
This replaces the Constraints: specification of the primary template.
— _end note_]