Lines Matching full:pair
74 struct pair
82 pair(const pair&) = default;
83 pair(pair&&) = default;
84 explicit(see-below) constexpr pair();
85 … explicit(see-below) pair(const T1& x, const T2& y); // constexpr in C++14
86 … template <class U = T1, class V = T2> explicit(see-below) pair(U&&, V&&); // constexpr in C++14
87 template <class U, class V> constexpr explicit(see-below) pair(pair<U, V>&); // since C++23
88 … template <class U, class V> explicit(see-below) pair(const pair<U, V>& p); // constexpr in C++14
89 … template <class U, class V> explicit(see-below) pair(pair<U, V>&& p); // constexpr in C++14
91 constexpr explicit(see-below) pair(const pair<U, V>&&); // since C++23
92 template <pair-like P> constexpr explicit(see-below) pair(P&&); // since C++23
94 … pair(piecewise_construct_t, tuple<Args1...> first_args, // constexpr in C++20
97 constexpr const pair& operator=(const pair& p) const; // since C++23
98 … template <class U, class V> pair& operator=(const pair<U, V>& p); // constexpr in C++20
100 constexpr const pair& operator=(const pair<U, V>& p) const; // since C++23
101 pair& operator=(pair&& p) noexcept(is_nothrow_move_assignable<T1>::value &&
103 constexpr const pair& operator=(pair&& p) const; // since C++23
104 … template <class U, class V> pair& operator=(pair<U, V>&& p); // constexpr in C++20
106 constexpr const pair& operator=(pair<U, V>&& p) const; // since C++23
107 template <pair-like P> constexpr pair& operator=(P&&); // since C++23
108 template <pair-like P> constexpr const pair& operator=(P&&) const; // since C++23
110 void swap(pair& p) noexcept(is_nothrow_swappable_v<T1> &&
112 constexpr void swap(const pair& p) const noexcept(see below); // since C++23
116 struct basic_common_reference<pair<T1, T2>, pair<U1, U2>, TQual, UQual>; // since C++23
119 struct common_type<pair<T1, T2>, pair<U1, U2>>; // since C++23
121 template<class T1, class T2> pair(T1, T2) -> pair<T1, T2>;
124 bool operator==(const pair<T1,T2>&, const pair<U1,U2>&); // constexpr in C+…
126 bool operator!=(const pair<T1,T2>&, const pair<U1,U2>&); // constexpr in C+…
128 bool operator< (const pair<T1,T2>&, const pair<U1,U2>&); // constexpr in C+…
130 bool operator> (const pair<T1,T2>&, const pair<U1,U2>&); // constexpr in C+…
132 bool operator>=(const pair<T1,T2>&, const pair<U1,U2>&); // constexpr in C+…
134 bool operator<=(const pair<T1,T2>&, const pair<U1,U2>&); // constexpr in C+…
138 operator<=>(const pair<T1,T2>&, const pair<U1,U2>&); // C++20
140 template <class T1, class T2> pair<V1, V2> make_pair(T1&&, T2&&); // constexpr in C+…
143 swap(pair<T1, T2>& x, pair<T1, T2>& y) noexcept(noexcept(x.swap(y))); // constexpr in C+…
146 constexpr void swap(const pair<T1, T2>& x, const pair<T1, T2>& y) noexcept(noexcept(x.swap(y)));
154 template <class T1, class T2> struct tuple_size<pair<T1, T2> >;
155 template <class T1, class T2> struct tuple_element<0, pair<T1, T2> >;
156 template <class T1, class T2> struct tuple_element<1, pair<T1, T2> >;
159 typename tuple_element<I, pair<T1, T2> >::type&
160 get(pair<T1, T2>&) noexcept; // constexpr in C++14
163 const typename tuple_element<I, pair<T1, T2> >::type&
164 get(const pair<T1, T2>&) noexcept; // constexpr in C++14
167 typename tuple_element<I, pair<T1, T2> >::type&&
168 get(pair<T1, T2>&&) noexcept; // constexpr in C++14
171 const typename tuple_element<I, pair<T1, T2> >::type&&
172 get(const pair<T1, T2>&&) noexcept; // constexpr in C++14
175 constexpr T1& get(pair<T1, T2>&) noexcept; // C++14
178 constexpr const T1& get(const pair<T1, T2>&) noexcept; // C++14
181 constexpr T1&& get(pair<T1, T2>&&) noexcept; // C++14
184 constexpr const T1&& get(const pair<T1, T2>&&) noexcept; // C++14
187 constexpr T1& get(pair<T2, T1>&) noexcept; // C++14
190 constexpr const T1& get(const pair<T2, T1>&) noexcept; // C++14
193 constexpr T1&& get(pair<T2, T1>&&) noexcept; // C++14
196 constexpr const T1&& get(const pair<T2, T1>&&) noexcept; // C++14
254 #include <__utility/pair.h>