[libc++] [compare] Rip out more vestiges of *_equality. NFCI.
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Mon, 27 Sep 2021 05:10:52 +0000 (01:10 -0400)
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Tue, 28 Sep 2021 16:23:41 +0000 (12:23 -0400)
There's really no reason to even have two different enums here,
but *definitely* we shouldn't have *three*, and they don't need
so many synonymous enumerator values.

Differential Revision: https://reviews.llvm.org/D110516

libcxx/include/__compare/ordering.h

index 460d25c..f4ad31b 100644 (file)
@@ -21,16 +21,9 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 #if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_SPACESHIP_OPERATOR)
 
 // exposition only
-enum class _LIBCPP_ENUM_VIS _EqResult : unsigned char {
-  __zero = 0,
-  __equal = __zero,
-  __equiv = __equal,
-  __nonequal = 1,
-  __nonequiv = __nonequal
-};
-
 enum class _LIBCPP_ENUM_VIS _OrdResult : signed char {
   __less = -1,
+  __equiv = 0,
   __greater = 1
 };
 
@@ -57,10 +50,6 @@ class partial_ordering {
   using _ValueT = signed char;
 
   _LIBCPP_HIDE_FROM_ABI
-  explicit constexpr partial_ordering(_EqResult __v) noexcept
-      : __value_(_ValueT(__v)) {}
-
-  _LIBCPP_HIDE_FROM_ABI
   explicit constexpr partial_ordering(_OrdResult __v) noexcept
       : __value_(_ValueT(__v)) {}
 
@@ -142,7 +131,7 @@ private:
 };
 
 inline constexpr partial_ordering partial_ordering::less(_OrdResult::__less);
-inline constexpr partial_ordering partial_ordering::equivalent(_EqResult::__equiv);
+inline constexpr partial_ordering partial_ordering::equivalent(_OrdResult::__equiv);
 inline constexpr partial_ordering partial_ordering::greater(_OrdResult::__greater);
 inline constexpr partial_ordering partial_ordering::unordered(_NCmpResult ::__unordered);
 
@@ -150,8 +139,6 @@ class weak_ordering {
   using _ValueT = signed char;
 
   _LIBCPP_HIDE_FROM_ABI
-  explicit constexpr weak_ordering(_EqResult __v) noexcept : __value_(_ValueT(__v)) {}
-  _LIBCPP_HIDE_FROM_ABI
   explicit constexpr weak_ordering(_OrdResult __v) noexcept : __value_(_ValueT(__v)) {}
 
 public:
@@ -229,15 +216,13 @@ private:
 };
 
 inline constexpr weak_ordering weak_ordering::less(_OrdResult::__less);
-inline constexpr weak_ordering weak_ordering::equivalent(_EqResult::__equiv);
+inline constexpr weak_ordering weak_ordering::equivalent(_OrdResult::__equiv);
 inline constexpr weak_ordering weak_ordering::greater(_OrdResult::__greater);
 
 class strong_ordering {
   using _ValueT = signed char;
 
   _LIBCPP_HIDE_FROM_ABI
-  explicit constexpr strong_ordering(_EqResult __v) noexcept : __value_(_ValueT(__v)) {}
-  _LIBCPP_HIDE_FROM_ABI
   explicit constexpr strong_ordering(_OrdResult __v) noexcept : __value_(_ValueT(__v)) {}
 
 public:
@@ -323,8 +308,8 @@ private:
 };
 
 inline constexpr strong_ordering strong_ordering::less(_OrdResult::__less);
-inline constexpr strong_ordering strong_ordering::equal(_EqResult::__equal);
-inline constexpr strong_ordering strong_ordering::equivalent(_EqResult::__equiv);
+inline constexpr strong_ordering strong_ordering::equal(_OrdResult::__equiv);
+inline constexpr strong_ordering strong_ordering::equivalent(_OrdResult::__equiv);
 inline constexpr strong_ordering strong_ordering::greater(_OrdResult::__greater);
 
 // named comparison functions