aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__compare/ordering.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/__compare/ordering.h')
-rw-r--r--libcxx/include/__compare/ordering.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/libcxx/include/__compare/ordering.h b/libcxx/include/__compare/ordering.h
index 1d466d669eec..ff148abf234f 100644
--- a/libcxx/include/__compare/ordering.h
+++ b/libcxx/include/__compare/ordering.h
@@ -10,7 +10,8 @@
#define _LIBCPP___COMPARE_ORDERING_H
#include <__config>
-#include <type_traits>
+#include <__type_traits/enable_if.h>
+#include <__type_traits/is_same.h>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
@@ -312,6 +313,12 @@ 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);
+/// [cmp.categories.pre]/1
+/// The types partial_ordering, weak_ordering, and strong_ordering are
+/// collectively termed the comparison category types.
+template <class _Tp>
+concept __comparison_category = __one_of_v<_Tp, partial_ordering, weak_ordering, strong_ordering>;
+
#endif // _LIBCPP_STD_VER > 17
_LIBCPP_END_NAMESPACE_STD