US 108, N3109

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111747 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/memory b/include/memory
index 2e9860c..8ee0dd1 100644
--- a/include/memory
+++ b/include/memory
@@ -218,8 +218,6 @@
     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);
 
     // destructor
@@ -2001,17 +1999,6 @@
                 "unique_ptr constructed with null function pointer deleter");
         }
 
-    template <class _Up>
-        _LIBCPP_INLINE_VISIBILITY explicit unique_ptr(auto_ptr<_Up>& __p,
-                typename enable_if<
-                                      is_convertible<_Up*, _Tp*>::value &&
-                                      is_same<_Dp, default_delete<_Tp> >::value,
-                                      __nat
-                                  >::type = __nat())
-            : __ptr_(__p.release())
-            {
-            }
-
 #ifdef _LIBCPP_MOVE
     _LIBCPP_INLINE_VISIBILITY unique_ptr(pointer __p, typename conditional<
                                         is_reference<deleter_type>::value,
@@ -2695,8 +2682,6 @@
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type= __nat()); 
 #ifdef _LIBCPP_MOVE    
     template<class _Yp> shared_ptr(auto_ptr<_Yp>&& __r); 
-#else
-    template<class _Yp> shared_ptr(auto_ptr<_Yp>& __r); 
 #endif
 #ifdef _LIBCPP_MOVE    
 private:
@@ -2722,7 +2707,7 @@
     template<class _Yp> shared_ptr& operator=(shared_ptr<_Yp>&& __r); 
     template<class _Yp> shared_ptr& operator=(auto_ptr<_Yp>&& __r); 
 #else
-    template<class _Yp> shared_ptr& operator=(auto_ptr<_Yp>& __r); 
+    template<class _Yp> shared_ptr& operator=(auto_ptr<_Yp> __r); 
 #endif
 #ifdef _LIBCPP_MOVE    
 private:
@@ -3004,7 +2989,7 @@
 #ifdef _LIBCPP_MOVE    
 shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp>&& __r)
 #else
-shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp>& __r)
+shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r)
 #endif
     : __ptr_(__r.get())
 {