Remove auto_ptr in C++17. Get it back by defining _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@292986 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -208,10 +208,10 @@ template <class ForwardIterator>
|
|||||||
template <class ForwardIterator, class Size>
|
template <class ForwardIterator, class Size>
|
||||||
ForwardIterator uninitialized_default_construct_n(ForwardIterator first, Size n);
|
ForwardIterator uninitialized_default_construct_n(ForwardIterator first, Size n);
|
||||||
|
|
||||||
template <class Y> struct auto_ptr_ref {};
|
template <class Y> struct auto_ptr_ref {}; // removed in C++17
|
||||||
|
|
||||||
template<class X>
|
template<class X>
|
||||||
class auto_ptr
|
class auto_ptr // removed in C++17
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef X element_type;
|
typedef X element_type;
|
||||||
@@ -270,7 +270,7 @@ public:
|
|||||||
template <class U, class E>
|
template <class U, class E>
|
||||||
unique_ptr(unique_ptr<U, E>&& u) noexcept;
|
unique_ptr(unique_ptr<U, E>&& u) noexcept;
|
||||||
template <class U>
|
template <class U>
|
||||||
unique_ptr(auto_ptr<U>&& u) noexcept;
|
unique_ptr(auto_ptr<U>&& u) noexcept; // removed in C++17
|
||||||
|
|
||||||
// destructor
|
// destructor
|
||||||
~unique_ptr();
|
~unique_ptr();
|
||||||
@@ -404,7 +404,7 @@ public:
|
|||||||
shared_ptr(shared_ptr&& r) noexcept;
|
shared_ptr(shared_ptr&& r) noexcept;
|
||||||
template<class Y> shared_ptr(shared_ptr<Y>&& r) noexcept;
|
template<class Y> shared_ptr(shared_ptr<Y>&& r) noexcept;
|
||||||
template<class Y> explicit shared_ptr(const weak_ptr<Y>& r);
|
template<class Y> explicit shared_ptr(const weak_ptr<Y>& r);
|
||||||
template<class Y> shared_ptr(auto_ptr<Y>&& r);
|
template<class Y> shared_ptr(auto_ptr<Y>&& r); // removed in C++17
|
||||||
template <class Y, class D> shared_ptr(unique_ptr<Y, D>&& r);
|
template <class Y, class D> shared_ptr(unique_ptr<Y, D>&& r);
|
||||||
shared_ptr(nullptr_t) : shared_ptr() { }
|
shared_ptr(nullptr_t) : shared_ptr() { }
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ public:
|
|||||||
template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;
|
template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;
|
||||||
shared_ptr& operator=(shared_ptr&& r) noexcept;
|
shared_ptr& operator=(shared_ptr&& r) noexcept;
|
||||||
template<class Y> shared_ptr& operator=(shared_ptr<Y>&& r);
|
template<class Y> shared_ptr& operator=(shared_ptr<Y>&& r);
|
||||||
template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r);
|
template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r); // removed in C++17
|
||||||
template <class Y, class D> shared_ptr& operator=(unique_ptr<Y, D>&& r);
|
template <class Y, class D> shared_ptr& operator=(unique_ptr<Y, D>&& r);
|
||||||
|
|
||||||
// modifiers:
|
// modifiers:
|
||||||
@@ -1996,6 +1996,7 @@ template <class _Tp>
|
|||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
void return_temporary_buffer(_Tp* __p) _NOEXCEPT {::operator delete(__p);}
|
void return_temporary_buffer(_Tp* __p) _NOEXCEPT {::operator delete(__p);}
|
||||||
|
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template <class _Tp>
|
template <class _Tp>
|
||||||
struct auto_ptr_ref
|
struct auto_ptr_ref
|
||||||
{
|
{
|
||||||
@@ -2052,6 +2053,7 @@ class _LIBCPP_TEMPLATE_VIS auto_ptr<void>
|
|||||||
public:
|
public:
|
||||||
typedef void element_type;
|
typedef void element_type;
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type,
|
template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type,
|
||||||
typename remove_cv<_T2>::type>::value,
|
typename remove_cv<_T2>::type>::value,
|
||||||
@@ -2496,6 +2498,7 @@ public:
|
|||||||
>::type = __nat()) _NOEXCEPT
|
>::type = __nat()) _NOEXCEPT
|
||||||
: __ptr_(__u.release(), _VSTD::forward<_Ep>(__u.get_deleter())) {}
|
: __ptr_(__u.release(), _VSTD::forward<_Ep>(__u.get_deleter())) {}
|
||||||
|
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template <class _Up>
|
template <class _Up>
|
||||||
_LIBCPP_INLINE_VISIBILITY unique_ptr(auto_ptr<_Up>&& __p,
|
_LIBCPP_INLINE_VISIBILITY unique_ptr(auto_ptr<_Up>&& __p,
|
||||||
typename enable_if<
|
typename enable_if<
|
||||||
@@ -2506,6 +2509,7 @@ public:
|
|||||||
: __ptr_(__p.release())
|
: __ptr_(__p.release())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY unique_ptr& operator=(unique_ptr&& __u) _NOEXCEPT
|
_LIBCPP_INLINE_VISIBILITY unique_ptr& operator=(unique_ptr&& __u) _NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -2557,6 +2561,7 @@ public:
|
|||||||
_LIBCPP_INLINE_VISIBILITY unique_ptr(pointer __p, deleter_type __d)
|
_LIBCPP_INLINE_VISIBILITY unique_ptr(pointer __p, deleter_type __d)
|
||||||
: __ptr_(_VSTD::move(__p), _VSTD::move(__d)) {}
|
: __ptr_(_VSTD::move(__p), _VSTD::move(__d)) {}
|
||||||
|
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template <class _Up>
|
template <class _Up>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
typename enable_if<
|
typename enable_if<
|
||||||
@@ -2566,7 +2571,7 @@ public:
|
|||||||
>::type
|
>::type
|
||||||
operator=(auto_ptr<_Up> __p)
|
operator=(auto_ptr<_Up> __p)
|
||||||
{reset(__p.release()); return *this;}
|
{reset(__p.release()); return *this;}
|
||||||
|
#endif
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
_LIBCPP_INLINE_VISIBILITY ~unique_ptr() {reset();}
|
_LIBCPP_INLINE_VISIBILITY ~unique_ptr() {reset();}
|
||||||
|
|
||||||
@@ -3645,6 +3650,7 @@ public:
|
|||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r,
|
template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r,
|
||||||
typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type= __nat());
|
typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type= __nat());
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
template<class _Yp>
|
template<class _Yp>
|
||||||
shared_ptr(auto_ptr<_Yp>&& __r,
|
shared_ptr(auto_ptr<_Yp>&& __r,
|
||||||
@@ -3654,6 +3660,7 @@ public:
|
|||||||
shared_ptr(auto_ptr<_Yp> __r,
|
shared_ptr(auto_ptr<_Yp> __r,
|
||||||
typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
|
typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
template <class _Yp, class _Dp>
|
template <class _Yp, class _Dp>
|
||||||
shared_ptr(unique_ptr<_Yp, _Dp>&&,
|
shared_ptr(unique_ptr<_Yp, _Dp>&&,
|
||||||
@@ -3717,6 +3724,7 @@ public:
|
|||||||
>::type
|
>::type
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
operator=(shared_ptr<_Yp>&& __r);
|
operator=(shared_ptr<_Yp>&& __r);
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template<class _Yp>
|
template<class _Yp>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
typename enable_if
|
typename enable_if
|
||||||
@@ -3726,7 +3734,9 @@ public:
|
|||||||
shared_ptr
|
shared_ptr
|
||||||
>::type&
|
>::type&
|
||||||
operator=(auto_ptr<_Yp>&& __r);
|
operator=(auto_ptr<_Yp>&& __r);
|
||||||
|
#endif
|
||||||
#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template<class _Yp>
|
template<class _Yp>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
typename enable_if
|
typename enable_if
|
||||||
@@ -3736,6 +3746,7 @@ public:
|
|||||||
shared_ptr&
|
shared_ptr&
|
||||||
>::type
|
>::type
|
||||||
operator=(auto_ptr<_Yp> __r);
|
operator=(auto_ptr<_Yp> __r);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
template <class _Yp, class _Dp>
|
template <class _Yp, class _Dp>
|
||||||
typename enable_if
|
typename enable_if
|
||||||
@@ -4072,6 +4083,7 @@ shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r,
|
|||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
|
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template<class _Tp>
|
template<class _Tp>
|
||||||
template<class _Yp>
|
template<class _Yp>
|
||||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
@@ -4087,6 +4099,7 @@ shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r,
|
|||||||
__enable_weak_this(__r.get(), __r.get());
|
__enable_weak_this(__r.get(), __r.get());
|
||||||
__r.release();
|
__r.release();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template<class _Tp>
|
template<class _Tp>
|
||||||
template <class _Yp, class _Dp>
|
template <class _Yp, class _Dp>
|
||||||
@@ -4393,6 +4406,7 @@ shared_ptr<_Tp>::operator=(shared_ptr<_Yp>&& __r)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template<class _Tp>
|
template<class _Tp>
|
||||||
template<class _Yp>
|
template<class _Yp>
|
||||||
inline
|
inline
|
||||||
@@ -4407,6 +4421,7 @@ shared_ptr<_Tp>::operator=(auto_ptr<_Yp>&& __r)
|
|||||||
shared_ptr(_VSTD::move(__r)).swap(*this);
|
shared_ptr(_VSTD::move(__r)).swap(*this);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template<class _Tp>
|
template<class _Tp>
|
||||||
template <class _Yp, class _Dp>
|
template <class _Yp, class _Dp>
|
||||||
@@ -4426,6 +4441,7 @@ shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp>&& __r)
|
|||||||
|
|
||||||
#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
|
|
||||||
|
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
template<class _Tp>
|
template<class _Tp>
|
||||||
template<class _Yp>
|
template<class _Yp>
|
||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
@@ -4440,6 +4456,7 @@ shared_ptr<_Tp>::operator=(auto_ptr<_Yp> __r)
|
|||||||
shared_ptr(__r).swap(*this);
|
shared_ptr(__r).swap(*this);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template<class _Tp>
|
template<class _Tp>
|
||||||
template <class _Yp, class _Dp>
|
template <class _Yp, class _Dp>
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||||
|
// Source Licenses. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
// <memory>
|
||||||
|
|
||||||
|
// template <class X>
|
||||||
|
// class auto_ptr;
|
||||||
|
//
|
||||||
|
// In C++17, auto_ptr has been removed.
|
||||||
|
// However, for backwards compatibility, if _LIBCPP_NO_REMOVE_AUTOPTR
|
||||||
|
// is defined before including <memory>, then auto_ptr will be restored.
|
||||||
|
|
||||||
|
#define _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::auto_ptr<int> p;
|
||||||
|
}
|
||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// auto_ptr& operator=(auto_ptr& a) throw();
|
// auto_ptr& operator=(auto_ptr& a) throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// auto_ptr(auto_ptr& a) throw();
|
// auto_ptr(auto_ptr& a) throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// template<class Y> auto_ptr& operator=(auto_ptr<Y>& a) throw();
|
// template<class Y> auto_ptr& operator=(auto_ptr<Y>& a) throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// auto_ptr(auto_ptr& a) throw();
|
// auto_ptr(auto_ptr& a) throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// explicit auto_ptr(X* p =0) throw();
|
// explicit auto_ptr(X* p =0) throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// auto_ptr& operator=(auto_ptr_ref<X> r) throw()
|
// auto_ptr& operator=(auto_ptr_ref<X> r) throw()
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// auto_ptr(auto_ptr_ref<X> r) throw();
|
// auto_ptr(auto_ptr_ref<X> r) throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// template<class Y> operator auto_ptr<Y>() throw();
|
// template<class Y> operator auto_ptr<Y>() throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// template<class Y> operator auto_ptr_ref<Y>() throw();
|
// template<class Y> operator auto_ptr_ref<Y>() throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// X& operator*() const throw();
|
// X& operator*() const throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
// X& operator*() const throw();
|
// X& operator*() const throw();
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include "../A.h"
|
#include "../A.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include "../A.h"
|
#include "../A.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
// ...
|
// ...
|
||||||
// };
|
// };
|
||||||
|
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
// libc++ cannot safely provide the auto_ptr constructor without rvalue
|
// libc++ cannot safely provide the auto_ptr constructor without rvalue
|
||||||
// references.
|
// references.
|
||||||
// XFAIL: c++98, c++03
|
// REQUIRES-ANY: c++11, c++14
|
||||||
|
|
||||||
// <memory>
|
// <memory>
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
// <memory>
|
// <memory>
|
||||||
|
|
||||||
// shared_ptr
|
// shared_ptr
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
// template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r);
|
// template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r);
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
// <memory>
|
// <memory>
|
||||||
|
|
||||||
// template<class Y> explicit shared_ptr(auto_ptr<Y>&& r);
|
// template<class Y> explicit shared_ptr(auto_ptr<Y>&& r);
|
||||||
|
// REQUIRES-ANY: c++98, c++03, c++11, c++14
|
||||||
|
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|||||||
Reference in New Issue
Block a user