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))
|
# define _LIBCPP_NORETURN __attribute__ ((noreturn))
|
||||||
#endif
|
#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))
|
#if !(__has_feature(cxx_deleted_functions))
|
||||||
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
||||||
#endif // !(__has_feature(cxx_deleted_functions))
|
#endif // !(__has_feature(cxx_deleted_functions))
|
||||||
|
@ -413,7 +409,6 @@ namespace std {
|
||||||
|
|
||||||
#ifndef __GXX_EXPERIMENTAL_CXX0X__
|
#ifndef __GXX_EXPERIMENTAL_CXX0X__
|
||||||
#define _LIBCPP_HAS_NO_DECLTYPE
|
#define _LIBCPP_HAS_NO_DECLTYPE
|
||||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
||||||
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
||||||
#define _LIBCPP_HAS_NO_NULLPTR
|
#define _LIBCPP_HAS_NO_NULLPTR
|
||||||
#define _LIBCPP_HAS_NO_UNICODE_CHARS
|
#define _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||||
|
@ -442,10 +437,6 @@ namespace std {
|
||||||
#define _LIBCPP_HAS_NO_NULLPTR
|
#define _LIBCPP_HAS_NO_NULLPTR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _GNUC_VER < 407
|
|
||||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // __GXX_EXPERIMENTAL_CXX0X__
|
#endif // __GXX_EXPERIMENTAL_CXX0X__
|
||||||
|
|
||||||
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE {
|
#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_VARIABLE_TEMPLATES
|
||||||
#define _LIBCPP_HAS_NO_UNICODE_CHARS
|
#define _LIBCPP_HAS_NO_UNICODE_CHARS
|
||||||
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
|
||||||
#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
||||||
#define _LIBCPP_HAS_NO_NOEXCEPT
|
#define _LIBCPP_HAS_NO_NOEXCEPT
|
||||||
#define __alignof__ __alignof
|
#define __alignof__ __alignof
|
||||||
#define _LIBCPP_NORETURN __declspec(noreturn)
|
#define _LIBCPP_NORETURN __declspec(noreturn)
|
||||||
|
@ -672,7 +662,7 @@ template <unsigned> struct __static_assert_check {};
|
||||||
#define _LIBCPP_CONSTEXPR constexpr
|
#define _LIBCPP_CONSTEXPR constexpr
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#ifdef _LIBCPP_CXX03_LANG
|
||||||
#define _LIBCPP_DEFAULT {}
|
#define _LIBCPP_DEFAULT {}
|
||||||
#else
|
#else
|
||||||
#define _LIBCPP_DEFAULT = default;
|
#define _LIBCPP_DEFAULT = default;
|
||||||
|
|
|
@ -43,7 +43,7 @@ class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mut
|
||||||
public:
|
public:
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||||
constexpr mutex() _NOEXCEPT _LIBCPP_DEFAULT
|
constexpr mutex() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;}
|
mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;}
|
||||||
#endif
|
#endif
|
||||||
|
@ -300,7 +300,7 @@ class _LIBCPP_TYPE_VIS condition_variable
|
||||||
public:
|
public:
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||||
constexpr condition_variable() _NOEXCEPT _LIBCPP_DEFAULT
|
constexpr condition_variable() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}
|
condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -579,11 +579,11 @@ struct __gcc_atomic_t {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
__gcc_atomic_t() _NOEXCEPT = default;
|
__gcc_atomic_t() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
__gcc_atomic_t() _NOEXCEPT : __a_value() {}
|
__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
|
_LIBCPP_CONSTEXPR explicit __gcc_atomic_t(_Tp value) _NOEXCEPT
|
||||||
: __a_value(value) {}
|
: __a_value(value) {}
|
||||||
_Tp __a_value;
|
_Tp __a_value;
|
||||||
|
@ -935,11 +935,11 @@ struct __atomic_base // false
|
||||||
{return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}
|
{return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
__atomic_base() _NOEXCEPT = default;
|
__atomic_base() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
__atomic_base() _NOEXCEPT : __a_() {}
|
__atomic_base() _NOEXCEPT : __a_() {}
|
||||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
_LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {}
|
_LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {}
|
||||||
|
@ -1690,11 +1690,11 @@ typedef struct atomic_flag
|
||||||
{__c11_atomic_store(&__a_, false, __m);}
|
{__c11_atomic_store(&__a_, false, __m);}
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
atomic_flag() _NOEXCEPT = default;
|
atomic_flag() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
atomic_flag() _NOEXCEPT : __a_() {}
|
atomic_flag() _NOEXCEPT : __a_() {}
|
||||||
#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {} // EXTENSION
|
atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {} // EXTENSION
|
||||||
|
|
|
@ -529,7 +529,7 @@ private:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
|
||||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
duration() = default;
|
duration() = default;
|
||||||
#else
|
#else
|
||||||
duration() {}
|
duration() {}
|
||||||
|
|
|
@ -2228,36 +2228,6 @@ private:
|
||||||
|
|
||||||
typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices;
|
typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices;
|
||||||
public:
|
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,
|
template <class _Gp, class ..._BA,
|
||||||
class = typename enable_if
|
class = typename enable_if
|
||||||
<
|
<
|
||||||
|
@ -2302,31 +2272,6 @@ class __bind_r
|
||||||
public:
|
public:
|
||||||
typedef _Rp result_type;
|
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,
|
template <class _Gp, class ..._BA,
|
||||||
class = typename enable_if
|
class = typename enable_if
|
||||||
|
|
|
@ -2105,44 +2105,6 @@ public:
|
||||||
_LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(_T1_param __t1, _T2_param __t2)
|
_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)) {}
|
: __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
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
|
||||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
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)
|
_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)) {}
|
: _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
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
|
||||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
||||||
|
@ -2290,42 +2216,6 @@ public:
|
||||||
is_nothrow_move_constructible<_T2>::value)
|
is_nothrow_move_constructible<_T2>::value)
|
||||||
: _T2(_VSTD::forward<_T2_param>(__t2)), __first_(_VSTD::forward<_T1_param>(__t1)) {}
|
: _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
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
|
||||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
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)
|
_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)) {}
|
: _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
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
|
||||||
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
|
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)
|
_LIBCPP_INLINE_VISIBILITY __compressed_pair(_T1_param __t1, _T2_param __t2)
|
||||||
: base(_VSTD::forward<_T1_param>(__t1), _VSTD::forward<_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
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
|
||||||
template <class... _Args1, class... _Args2>
|
template <class... _Args1, class... _Args2>
|
||||||
|
@ -2563,7 +2383,7 @@ struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, false>
|
||||||
template <class _Tp>
|
template <class _Tp>
|
||||||
struct _LIBCPP_TYPE_VIS_ONLY default_delete
|
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;
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT {}
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT {}
|
||||||
|
@ -2583,7 +2403,7 @@ template <class _Tp>
|
||||||
struct _LIBCPP_TYPE_VIS_ONLY default_delete<_Tp[]>
|
struct _LIBCPP_TYPE_VIS_ONLY default_delete<_Tp[]>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT {}
|
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT {}
|
||||||
|
|
Loading…
Reference in New Issue