|
@@ -1889,13 +1889,48 @@ 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)) {}
|
|
|
|
|
|
|
|
+#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
|
|
+ _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;
|
|
|
|
+ }
|
|
|
|
+
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
- _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
|
|
|
|
+
|
|
|
|
+ _LIBCPP_INLINE_VISIBILITY
|
|
|
|
+ __libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
- : __first_(_VSTD::forward<_T1>(__p.first())), __second_(_VSTD::forward<_T2>(__p.second())) {}
|
|
|
|
|
|
+ : __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 // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
|
|
|
|
+#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return __first_;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return __first_;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return __first_;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return __first_;}
|
|
|
|
|
|
@@ -1936,13 +1971,46 @@ 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)) {}
|
|
|
|
|
|
|
|
+#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
|
|
+ _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;
|
|
|
|
+ }
|
|
|
|
+
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
- _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
|
|
|
|
+
|
|
|
|
+ _LIBCPP_INLINE_VISIBILITY
|
|
|
|
+ __libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
: _T1(_VSTD::move(__p.first())), __second_(_VSTD::forward<_T2>(__p.second())) {}
|
|
: _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 // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
|
|
|
|
+#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return *this;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return *this;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return *this;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return *this;}
|
|
|
|
|
|
@@ -1984,11 +2052,46 @@ 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)) {}
|
|
|
|
|
|
|
|
+#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
|
|
+ _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;
|
|
|
|
+ }
|
|
|
|
+
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
+
|
|
|
|
+ _LIBCPP_INLINE_VISIBILITY
|
|
__libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
__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())) {}
|
|
: _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 // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
|
|
|
|
+#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return __first_;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return __first_;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return __first_;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return __first_;}
|
|
|
|
|
|
@@ -2027,13 +2130,46 @@ 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)) {}
|
|
|
|
|
|
|
|
+#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
|
|
+ _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;
|
|
|
|
+ }
|
|
|
|
+
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
- _LIBCPP_INLINE_VISIBILITY __libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
|
|
|
|
+
|
|
|
|
+ _LIBCPP_INLINE_VISIBILITY
|
|
|
|
+ __libcpp_compressed_pair_imp(__libcpp_compressed_pair_imp&& __p)
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
: _T1(_VSTD::move(__p.first())), _T2(_VSTD::move(__p.second())) {}
|
|
: _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 // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
|
|
|
|
+#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return *this;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return *this;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return *this;}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return *this;}
|
|
|
|
|
|
@@ -2070,13 +2206,42 @@ 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)) {}
|
|
|
|
|
|
|
|
+#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
|
|
+ _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;
|
|
|
|
+ }
|
|
|
|
+
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
+ _LIBCPP_INLINE_VISIBILITY
|
|
__compressed_pair(__compressed_pair&& __p)
|
|
__compressed_pair(__compressed_pair&& __p)
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
_NOEXCEPT_(is_nothrow_move_constructible<_T1>::value &&
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
is_nothrow_move_constructible<_T2>::value)
|
|
: base(_VSTD::move(__p)) {}
|
|
: 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 // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
|
|
|
|
|
|
+#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
|
|
|
|
+
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return base::first();}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_reference first() _NOEXCEPT {return base::first();}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return base::first();}
|
|
_LIBCPP_INLINE_VISIBILITY _T1_const_reference first() const _NOEXCEPT {return base::first();}
|
|
|
|
|