forked from OSchip/llvm-project
Remove _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
libc++ no longer supports C++11 compilers that don't implement `= default`. This patch removes all instances of the feature test macro _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS as well as the potentially dead code it hides. llvm-svn: 287321
This commit is contained in:
parent
655c452534
commit
f9980200aa
|
@ -257,10 +257,6 @@ typedef __char32_t char32_t;
|
|||
# define _LIBCPP_NORETURN __attribute__ ((noreturn))
|
||||
#endif
|
||||
|
||||
#if !(__has_feature(cxx_defaulted_functions))
|
||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#endif // !(__has_feature(cxx_defaulted_functions))
|
||||
|
||||
#if !(__has_feature(cxx_deleted_functions))
|
||||
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
||||
#endif // !(__has_feature(cxx_deleted_functions))
|
||||
|
@ -413,7 +409,6 @@ namespace std {
|
|||
|
||||
#ifndef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#define _LIBCPP_HAS_NO_DECLTYPE
|
||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
||||
#define _LIBCPP_HAS_NO_NULLPTR
|
||||
#define _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
|
@ -442,10 +437,6 @@ namespace std {
|
|||
#define _LIBCPP_HAS_NO_NULLPTR
|
||||
#endif
|
||||
|
||||
#if _GNUC_VER < 407
|
||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#endif // __GXX_EXPERIMENTAL_CXX0X__
|
||||
|
||||
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE {
|
||||
|
@ -469,7 +460,6 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
|
|||
#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
|
||||
#define _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#define _LIBCPP_HAS_NO_NOEXCEPT
|
||||
#define __alignof__ __alignof
|
||||
#define _LIBCPP_NORETURN __declspec(noreturn)
|
||||
|
@ -672,7 +662,7 @@ template <unsigned> struct __static_assert_check {};
|
|||
#define _LIBCPP_CONSTEXPR constexpr
|
||||
#endif
|
||||
|
||||
#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifdef _LIBCPP_CXX03_LANG
|
||||
#define _LIBCPP_DEFAULT {}
|
||||
#else
|
||||
#define _LIBCPP_DEFAULT = default;
|
||||
|
|
|
@ -43,7 +43,7 @@ class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mut
|
|||
public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
constexpr mutex() _NOEXCEPT _LIBCPP_DEFAULT
|
||||
constexpr mutex() _NOEXCEPT = default;
|
||||
#else
|
||||
mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;}
|
||||
#endif
|
||||
|
@ -300,7 +300,7 @@ class _LIBCPP_TYPE_VIS condition_variable
|
|||
public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
constexpr condition_variable() _NOEXCEPT _LIBCPP_DEFAULT
|
||||
constexpr condition_variable() _NOEXCEPT = default;
|
||||
#else
|
||||
condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}
|
||||
#endif
|
||||
|
|
|
@ -579,11 +579,11 @@ struct __gcc_atomic_t {
|
|||
#endif
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
__gcc_atomic_t() _NOEXCEPT = default;
|
||||
#else
|
||||
__gcc_atomic_t() _NOEXCEPT : __a_value() {}
|
||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#endif // _LIBCPP_CXX03_LANG
|
||||
_LIBCPP_CONSTEXPR explicit __gcc_atomic_t(_Tp value) _NOEXCEPT
|
||||
: __a_value(value) {}
|
||||
_Tp __a_value;
|
||||
|
@ -935,11 +935,11 @@ struct __atomic_base // false
|
|||
{return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
__atomic_base() _NOEXCEPT = default;
|
||||
#else
|
||||
__atomic_base() _NOEXCEPT : __a_() {}
|
||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#endif // _LIBCPP_CXX03_LANG
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {}
|
||||
|
@ -1690,11 +1690,11 @@ typedef struct atomic_flag
|
|||
{__c11_atomic_store(&__a_, false, __m);}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
atomic_flag() _NOEXCEPT = default;
|
||||
#else
|
||||
atomic_flag() _NOEXCEPT : __a_() {}
|
||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#endif // _LIBCPP_CXX03_LANG
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {} // EXTENSION
|
||||
|
|
|
@ -529,7 +529,7 @@ private:
|
|||
public:
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
|
||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
duration() = default;
|
||||
#else
|
||||
duration() {}
|
||||
|
|
|
@ -2228,36 +2228,6 @@ private:
|
|||
|
||||
typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices;
|
||||
public:
|
||||
#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind(const __bind& __b)
|
||||
: __f_(__b.__f_),
|
||||
__bound_args_(__b.__bound_args_) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind& operator=(const __bind& __b)
|
||||
{
|
||||
__f_ = __b.__f_;
|
||||
__bound_args_ = __b.__bound_args_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind(__bind&& __b)
|
||||
: __f_(_VSTD::move(__b.__f_)),
|
||||
__bound_args_(_VSTD::move(__b.__bound_args_)) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind& operator=(__bind&& __b)
|
||||
{
|
||||
__f_ = _VSTD::move(__b.__f_);
|
||||
__bound_args_ = _VSTD::move(__b.__bound_args_);
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
|
||||
template <class _Gp, class ..._BA,
|
||||
class = typename enable_if
|
||||
<
|
||||
|
@ -2302,31 +2272,6 @@ class __bind_r
|
|||
public:
|
||||
typedef _Rp result_type;
|
||||
|
||||
#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind_r(const __bind_r& __b)
|
||||
: base(_VSTD::forward<const base&>(__b)) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind_r& operator=(const __bind_r& __b)
|
||||
{
|
||||
base::operator=(_VSTD::forward<const base&>(__b));
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind_r(__bind_r&& __b)
|
||||
: base(_VSTD::forward<base>(__b)) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__bind_r& operator=(__bind_r&& __b)
|
||||
{
|
||||
base::operator=(_VSTD::forward<base>(__b));
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
|
||||
template <class _Gp, class ..._BA,
|
||||
class = typename enable_if
|
||||
|
|
|
@ -2105,44 +2105,6 @@ public:
|
|||
_LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
|
||||
: __first_(_VSTD::forward<_T1_param>(__t1)), __second_(_VSTD::forward<_T2_param>(__t2)) {}
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_constructible<_T1>::value &&
|
||||
is_nothrow_copy_constructible<_T2>::value)
|
||||
: __first_(__p.first()),
|
||||
__second_(__p.second()) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_assignable<_T1>::value &&
|
||||
is_nothrow_copy_assignable<_T2>::value)
|
||||
{
|
||||
__first_ = __p.first();
|
||||
__second_ = __p.second();
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
||||
is_nothrow_move_constructible<_T2>::value)
|
||||
: __first_(_VSTD::forward<_T1>(__p.first())),
|
||||
__second_(_VSTD::forward<_T2>(__p.second())) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_assignable<_T1>::value &&
|
||||
is_nothrow_move_assignable<_T2>::value)
|
||||
{
|
||||
__first_ = _VSTD::forward<_T1>(__p.first());
|
||||
__second_ = _VSTD::forward<_T2>(__p.second());
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
|
||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
||||
|
@ -2198,42 +2160,6 @@ public:
|
|||
_LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
|
||||
: _T1(_VSTD::forward<_T1_param>(__t1)), __second_(_VSTD::forward<_T2_param>(__t2)) {}
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_constructible<_T1>::value &&
|
||||
is_nothrow_copy_constructible<_T2>::value)
|
||||
: _T1(__p.first()), __second_(__p.second()) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_assignable<_T1>::value &&
|
||||
is_nothrow_copy_assignable<_T2>::value)
|
||||
{
|
||||
_T1::operator=(__p.first());
|
||||
__second_ = __p.second();
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
||||
is_nothrow_move_constructible<_T2>::value)
|
||||
: _T1(_VSTD::move(__p.first())), __second_(_VSTD::forward<_T2>(__p.second())) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_assignable<_T1>::value &&
|
||||
is_nothrow_move_assignable<_T2>::value)
|
||||
{
|
||||
_T1::operator=(_VSTD::move(__p.first()));
|
||||
__second_ = _VSTD::forward<_T2>(__p.second());
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
|
||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
||||
|
@ -2290,42 +2216,6 @@ public:
|
|||
is_nothrow_move_constructible<_T2>::value)
|
||||
: _T2(_VSTD::forward<_T2_param>(__t2)), __first_(_VSTD::forward<_T1_param>(__t1)) {}
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_constructible<_T1>::value &&
|
||||
is_nothrow_copy_constructible<_T2>::value)
|
||||
: _T2(__p.second()), __first_(__p.first()) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_assignable<_T1>::value &&
|
||||
is_nothrow_copy_assignable<_T2>::value)
|
||||
{
|
||||
_T2::operator=(__p.second());
|
||||
__first_ = __p.first();
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
||||
is_nothrow_move_constructible<_T2>::value)
|
||||
: _T2(_VSTD::forward<_T2>(__p.second())), __first_(_VSTD::move(__p.first())) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_assignable<_T1>::value &&
|
||||
is_nothrow_move_assignable<_T2>::value)
|
||||
{
|
||||
_T2::operator=(_VSTD::forward<_T2>(__p.second()));
|
||||
__first_ = _VSTD::move(__p.first());
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
|
||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
||||
|
@ -2380,42 +2270,6 @@ public:
|
|||
_LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
|
||||
: _T1(_VSTD::forward<_T1_param>(__t1)), _T2(_VSTD::forward<_T2_param>(__t2)) {}
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_constructible<_T1>::value &&
|
||||
is_nothrow_copy_constructible<_T2>::value)
|
||||
: _T1(__p.first()), _T2(__p.second()) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(const __libcpp_compressed_pair_imp& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_assignable<_T1>::value &&
|
||||
is_nothrow_copy_assignable<_T2>::value)
|
||||
{
|
||||
_T1::operator=(__p.first());
|
||||
_T2::operator=(__p.second());
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
||||
is_nothrow_move_constructible<_T2>::value)
|
||||
: _T1(_VSTD::move(__p.first())), _T2(_VSTD::move(__p.second())) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__libcpp_compressed_pair_imp& operator=(__libcpp_compressed_pair_imp&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_assignable<_T1>::value &&
|
||||
is_nothrow_move_assignable<_T2>::value)
|
||||
{
|
||||
_T1::operator=(_VSTD::move(__p.first()));
|
||||
_T2::operator=(_VSTD::move(__p.second()));
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
|
||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
||||
|
@ -2467,40 +2321,6 @@ public:
|
|||
_LIBCPP_INLINE_VISIBILITY __compressed_pair(_T1_param __t1, _T2_param __t2)
|
||||
: base(_VSTD::forward<_T1_param>(__t1), _VSTD::forward<_T2_param>(__t2)) {}
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__compressed_pair(const __compressed_pair& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_constructible<_T1>::value &&
|
||||
is_nothrow_copy_constructible<_T2>::value)
|
||||
: base(__p) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__compressed_pair& operator=(const __compressed_pair& __p)
|
||||
_NOEXCEPT_(is_nothrow_copy_assignable<_T1>::value &&
|
||||
is_nothrow_copy_assignable<_T2>::value)
|
||||
{
|
||||
base::operator=(__p);
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__compressed_pair(__compressed_pair&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
||||
is_nothrow_move_constructible<_T2>::value)
|
||||
: base(_VSTD::move(__p)) {}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__compressed_pair& operator=(__compressed_pair&& __p)
|
||||
_NOEXCEPT_(is_nothrow_move_assignable<_T1>::value &&
|
||||
is_nothrow_move_assignable<_T2>::value)
|
||||
{
|
||||
base::operator=(_VSTD::move(__p));
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS) && !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
|
||||
template <class... _Args1, class... _Args2>
|
||||
|
@ -2563,7 +2383,7 @@ struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, false>
|
|||
template <class _Tp>
|
||||
struct _LIBCPP_TYPE_VIS_ONLY default_delete
|
||||
{
|
||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
||||
#else
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT {}
|
||||
|
@ -2583,7 +2403,7 @@ template <class _Tp>
|
|||
struct _LIBCPP_TYPE_VIS_ONLY default_delete<_Tp[]>
|
||||
{
|
||||
public:
|
||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
||||
#else
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT {}
|
||||
|
|
Loading…
Reference in New Issue