namespace std { template <class T, class D = default_delete<T>> class unique_ptr { public: ... template <class U, class E> unique_ptr(unique_ptr<U, E>&& u);template <class U>explicit unique_ptr(auto_ptr<U>& u);template <class U> unique_ptr(auto_ptr<U>&& u); ... }; }
template <class U>explicit unique_ptr(auto_ptr<U>& u);template <class U> unique_ptr(auto_ptr<U>&& u);27 Effects: Constructs a unique_ptr object, initializing the stored pointer with u.release() and value-initializing the stored deleter.
28 Postconditions: get() yields the value u.get() yielded before the construction. u.get() == nullptr. get_deleter() returns a reference to the stored deleter.
29 Throws: Nothing.
30 Remarks:
These constructorsThis constructor shall not participate in overload resolution unless U* is implictly convertible to T* and D is the same type as default_delete<T>.