File indexing completed on 2026-05-03 08:13:07
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _LIBCPP___ALGORITHM_COMP_H
0010 #define _LIBCPP___ALGORITHM_COMP_H
0011
0012 #include <__config>
0013 #include <__type_traits/desugars_to.h>
0014 #include <__type_traits/is_integral.h>
0015
0016 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0017 # pragma GCC system_header
0018 #endif
0019
0020 _LIBCPP_BEGIN_NAMESPACE_STD
0021
0022 struct __equal_to {
0023 template <class _T1, class _T2>
0024 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 bool operator()(const _T1& __x, const _T2& __y) const {
0025 return __x == __y;
0026 }
0027 };
0028
0029 template <class _Tp, class _Up>
0030 inline const bool __desugars_to_v<__equal_tag, __equal_to, _Tp, _Up> = true;
0031
0032
0033
0034 template <class _T1 = void, class _T2 = _T1>
0035 struct __less {};
0036
0037 template <>
0038 struct __less<void, void> {
0039 template <class _Tp, class _Up>
0040 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 bool operator()(const _Tp& __lhs, const _Up& __rhs) const {
0041 return __lhs < __rhs;
0042 }
0043 };
0044
0045 template <class _Tp>
0046 inline const bool __desugars_to_v<__less_tag, __less<>, _Tp, _Tp> = true;
0047
0048 template <class _Tp>
0049 inline const bool __desugars_to_v<__totally_ordered_less_tag, __less<>, _Tp, _Tp> = is_integral<_Tp>::value;
0050
0051 _LIBCPP_END_NAMESPACE_STD
0052
0053 #endif