From 619e8f46f3c77cb97464cf64e01872e6246f8875 Mon Sep 17 00:00:00 2001 From: Adrian Vogelsgesang Date: Sat, 6 Aug 2022 15:09:50 +0200 Subject: [PATCH] [libc++] Remove `operator!=` from `type_info` in C++20 Implements part of: * P1614R2 The Mothership has Landed Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D130853 --- libcxx/docs/Status/SpaceshipProjects.csv | 1 + libcxx/include/typeinfo | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libcxx/docs/Status/SpaceshipProjects.csv b/libcxx/docs/Status/SpaceshipProjects.csv index 87e0c60..ecf0431 100644 --- a/libcxx/docs/Status/SpaceshipProjects.csv +++ b/libcxx/docs/Status/SpaceshipProjects.csv @@ -12,6 +12,7 @@ Section,Description,Dependencies,Assignee,Complete | `weak_order_fallback `_ | `partial_order_fallback `_",None,Arthur O'Dwyer,|Complete| [#note-strongorder]_ | `[alg.three.way] `_,| `lexicographical_compare_three_way `_,[comparisons.three.way],Christopher Di Bella,|In Progress| +| `[type.info] `_,| `typeinfo `_,None,Adrian Vogelsgesang,|Complete| | `[coroutine.handle.compare] `_,| `coroutine_handle `_,[comparisons.three.way],Chuanqi Xu,|Complete| | `[pairs.spec] `_,| `pair `_,[expos.only.func],Kent Ross,|Complete| | `[syserr.errcat.nonvirtuals] `_,| error_category,[comparisons.three.way],Unassigned,|Not Started| diff --git a/libcxx/include/typeinfo b/libcxx/include/typeinfo index 1f31608..d81a3099 100644 --- a/libcxx/include/typeinfo +++ b/libcxx/include/typeinfo @@ -22,7 +22,7 @@ public: virtual ~type_info(); bool operator==(const type_info& rhs) const noexcept; - bool operator!=(const type_info& rhs) const noexcept; + bool operator!=(const type_info& rhs) const noexcept; // removed in C++20 bool before(const type_info& rhs) const noexcept; size_t hash_code() const noexcept; @@ -112,9 +112,11 @@ public: return __compare(__arg) == 0; } +#if _LIBCPP_STD_VER <= 17 _LIBCPP_INLINE_VISIBILITY bool operator!=(const type_info& __arg) const _NOEXCEPT { return !operator==(__arg); } +#endif }; #else // !defined(_LIBCPP_ABI_MICROSOFT) @@ -337,9 +339,11 @@ public: return __impl::__eq(__type_name, __arg.__type_name); } +#if _LIBCPP_STD_VER <= 17 _LIBCPP_INLINE_VISIBILITY bool operator!=(const type_info& __arg) const _NOEXCEPT { return !operator==(__arg); } +#endif }; #endif // defined(_LIBCPP_ABI_MICROSOFT) -- 2.7.4