40 using KeyType = KEY_TYPE;
43 using ValueType = VALUE_TYPE;
52 constexpr KeyValuePair () noexcept (is_nothrow_constructible_v<KEY_TYPE> and is_nothrow_constructible_v<VALUE_TYPE>)
53 requires (constructible_from<KEY_TYPE> and constructible_from<VALUE_TYPE>)
56 is_nothrow_constructible_v<VALUE_TYPE, VALUE_TYPE>)
57 requires (copy_constructible<KEY_TYPE> and copy_constructible<VALUE_TYPE>)
59 KeyValuePair (
KeyValuePair&& src) noexcept (is_nothrow_constructible_v<KEY_TYPE> and is_nothrow_constructible_v<VALUE_TYPE>)
60 requires (is_move_constructible_v<KEY_TYPE> and is_move_constructible_v<VALUE_TYPE>)
62 constexpr
KeyValuePair (const KeyType& key, const ValueType& value) noexcept (is_nothrow_constructible_v<KEY_TYPE, KEY_TYPE> and
63 is_nothrow_constructible_v<VALUE_TYPE, VALUE_TYPE>)
64 requires (copy_constructible<KEY_TYPE> and copy_constructible<VALUE_TYPE>);
65 template <typename KEY_TYPE2, typename VALUE_TYPE2>
66 constexpr
KeyValuePair (const pair<KEY_TYPE2, VALUE_TYPE2>& src)
67 requires (constructible_from<KEY_TYPE, const KEY_TYPE2&> and constructible_from<VALUE_TYPE, const VALUE_TYPE2&>);
68 template <typename KEY_TYPE2, typename VALUE_TYPE2>
70 requires (constructible_from<KEY_TYPE, const KEY_TYPE2&> and constructible_from<VALUE_TYPE, const VALUE_TYPE2&>);
77 template <typename KEY_TYPE2, typename VALUE_TYPE2>
78 nonvirtual
KeyValuePair& operator= (const pair<KEY_TYPE2, VALUE_TYPE2>& rhs);
79 template <typename KEY_TYPE2, typename VALUE_TYPE2>
81 template <typename KEY_TYPE2, typename VALUE_TYPE2>
82 nonvirtual
KeyValuePair& operator= (pair<KEY_TYPE2, VALUE_TYPE2>&& rhs);
83 template <typename KEY_TYPE2, typename VALUE_TYPE2>
96 requires (equality_comparable<KEY_TYPE> and equality_comparable<VALUE_TYPE>);
104 requires (three_way_comparable<KEY_TYPE> and three_way_comparable<VALUE_TYPE>);