diff --git a/libcxx/docs/Status/SpaceshipProjects.csv b/libcxx/docs/Status/SpaceshipProjects.csv --- a/libcxx/docs/Status/SpaceshipProjects.csv +++ b/libcxx/docs/Status/SpaceshipProjects.csv @@ -97,8 +97,8 @@ | `multimap `_",[expos.only.func],Hristo Hristov,|Complete| | `[associative.set.syn] `_ (`general `_),"| `multiset `_ | `set `_",[expos.only.func],Hristo Hristov,|Complete| -| `[unord.map.syn] `_,"| remove ops `unordered_map` -| remove ops `unordered_multimap`",None,Unassigned,|Not Started| +| `[unord.map.syn] `_,"| remove ops `unordered_map `_ +| remove ops `unordered_multimap `_",None,Hristo Hristov,|Complete| | `[unordered.set.syn] `_,"| remove ops `unordered_set `_ | remove ops `unordered_multiset `_",None,Hristo Hristov,|Complete| | `[queue.syn] `_,| `queue `_,None,Hristo Hristov,|Complete| diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -270,7 +270,7 @@ template bool operator!=(const unordered_map& x, - const unordered_map& y); + const unordered_map& y); // Removed in C++20 template , class Pred = equal_to, class Alloc = allocator>> @@ -508,7 +508,7 @@ template bool operator!=(const unordered_multimap& x, - const unordered_multimap& y); + const unordered_multimap& y); // Removed in C++20 } // std @@ -954,9 +954,11 @@ friend _LIBCPP_INLINE_VISIBILITY bool operator==(const __hash_map_iterator& __x, const __hash_map_iterator& __y) {return __x.__i_ == __y.__i_;} +#if _LIBCPP_STD_VER <= 17 friend _LIBCPP_INLINE_VISIBILITY bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y) {return __x.__i_ != __y.__i_;} +#endif template friend class _LIBCPP_TEMPLATE_VIS unordered_map; template friend class _LIBCPP_TEMPLATE_VIS unordered_multimap; @@ -1008,9 +1010,11 @@ friend _LIBCPP_INLINE_VISIBILITY bool operator==(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y) {return __x.__i_ == __y.__i_;} +#if _LIBCPP_STD_VER <= 17 friend _LIBCPP_INLINE_VISIBILITY bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y) {return __x.__i_ != __y.__i_;} +#endif template friend class _LIBCPP_TEMPLATE_VIS unordered_map; template friend class _LIBCPP_TEMPLATE_VIS unordered_multimap; @@ -1905,6 +1909,8 @@ return true; } +#if _LIBCPP_STD_VER <= 17 + template inline _LIBCPP_INLINE_VISIBILITY bool @@ -1914,6 +1920,8 @@ return !(__x == __y); } +#endif + template , class _Pred = equal_to<_Key>, class _Alloc = allocator > > class _LIBCPP_TEMPLATE_VIS unordered_multimap @@ -2619,6 +2627,8 @@ return true; } +#if _LIBCPP_STD_VER <= 17 + template inline _LIBCPP_INLINE_VISIBILITY bool @@ -2628,6 +2638,8 @@ return !(__x == __y); } +#endif + _LIBCPP_END_NAMESPACE_STD #if _LIBCPP_STD_VER >= 17