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 @@ -50,7 +50,7 @@ | `[variant.monostate.relops] `_","| `monostate `_ | `variant `_",None,Kent Ross,|Complete| "| `[template.bitset] `_ -| `[bitset.members] `_","| remove ops `bitset `_",None,Hristo Hristov,|In Progress| +| `[bitset.members] `_","| remove ops `bitset `_",None,Hristo Hristov,|Complete| | `[memory.syn] `_,|,None,Unassigned,|Not Started| | `[allocator.globals] `_,| remove ops `allocator `_,None,Hristo Hristov,|In Progress| | `[unique.ptr.special] `_,| `unique_ptr `_,[comparisons.three.way],Adrian Vogelsgesang,|Complete| diff --git a/libcxx/include/bitset b/libcxx/include/bitset --- a/libcxx/include/bitset +++ b/libcxx/include/bitset @@ -79,7 +79,7 @@ size_t count() const noexcept; // constexpr since C++23 constexpr size_t size() const noexcept; // constexpr since C++23 bool operator==(const bitset& rhs) const noexcept; // constexpr since C++23 - bool operator!=(const bitset& rhs) const noexcept; // constexpr since C++23 + bool operator!=(const bitset& rhs) const noexcept; // removed in C++20 bool test(size_t pos) const; // constexpr since C++23 bool all() const noexcept; // constexpr since C++23 bool any() const noexcept; // constexpr since C++23 @@ -761,8 +761,10 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR size_t size() const _NOEXCEPT {return _Size;} _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 bool operator==(const bitset& __rhs) const _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 +#if _LIBCPP_STD_VER <= 17 + _LIBCPP_INLINE_VISIBILITY bool operator!=(const bitset& __rhs) const _NOEXCEPT; +#endif _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bool test(size_t __pos) const; _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 @@ -1041,15 +1043,19 @@ return _VSTD::equal(base::__make_iter(0), base::__make_iter(_Size), __rhs.__make_iter(0)); } +#if _LIBCPP_STD_VER <= 17 + template inline -_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 +_LIBCPP_HIDE_FROM_ABI bool bitset<_Size>::operator!=(const bitset& __rhs) const _NOEXCEPT { return !(*this == __rhs); } +#endif + template _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bool