multiset(initializer_list<_Key>, _Allocator)
-> multiset<_Key, less<_Key>, _Allocator>;
-#endif
+#endif // deduction guides
template<typename _Key, typename _Compare, typename _Allocator>
inline bool
const multiset<_Key, _Compare, _Allocator>& __rhs)
{ return __lhs._M_base() == __rhs._M_base(); }
+#if __cpp_lib_three_way_comparison
+ template<typename _Key, typename _Compare, typename _Alloc>
+ inline __detail::__synth3way_t<_Key>
+ operator<=>(const multiset<_Key, _Compare, _Alloc>& __lhs,
+ const multiset<_Key, _Compare, _Alloc>& __rhs)
+ { return __lhs._M_base() <=> __rhs._M_base(); }
+#else
template<typename _Key, typename _Compare, typename _Allocator>
inline bool
operator!=(const multiset<_Key, _Compare, _Allocator>& __lhs,
operator>(const multiset<_Key, _Compare, _Allocator>& __lhs,
const multiset<_Key, _Compare, _Allocator>& __rhs)
{ return __lhs._M_base() > __rhs._M_base(); }
+#endif // three-way comparison
template<typename _Key, typename _Compare, typename _Allocator>
void