176d0caaeSpatrick //===----------------------------------------------------------------------===// 276d0caaeSpatrick // 376d0caaeSpatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 476d0caaeSpatrick // See https://llvm.org/LICENSE.txt for license information. 576d0caaeSpatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 676d0caaeSpatrick // 776d0caaeSpatrick //===----------------------------------------------------------------------===// 876d0caaeSpatrick 976d0caaeSpatrick #ifndef _LIBCPP___ALGORITHM_COMP_H 1076d0caaeSpatrick #define _LIBCPP___ALGORITHM_COMP_H 1176d0caaeSpatrick 1276d0caaeSpatrick #include <__config> 1376d0caaeSpatrick 1476d0caaeSpatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 1576d0caaeSpatrick # pragma GCC system_header 1676d0caaeSpatrick #endif 1776d0caaeSpatrick 1876d0caaeSpatrick _LIBCPP_BEGIN_NAMESPACE_STD 1976d0caaeSpatrick 20*4bdff4beSrobert struct __equal_to { 21*4bdff4beSrobert template <class _T1, class _T2> operator__equal_to22*4bdff4beSrobert _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 bool operator()(const _T1& __x, const _T2& __y) const { 23*4bdff4beSrobert return __x == __y; 24*4bdff4beSrobert } 2576d0caaeSpatrick }; 2676d0caaeSpatrick 2776d0caaeSpatrick template <class _T1, class _T2 = _T1> 2876d0caaeSpatrick struct __less 2976d0caaeSpatrick { 30*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 operator__less3176d0caaeSpatrick bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} 3276d0caaeSpatrick 33*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 operator__less3476d0caaeSpatrick bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;} 3576d0caaeSpatrick 36*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 operator__less3776d0caaeSpatrick bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;} 3876d0caaeSpatrick 39*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 operator__less4076d0caaeSpatrick bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;} 4176d0caaeSpatrick }; 4276d0caaeSpatrick 4376d0caaeSpatrick template <class _T1> 4476d0caaeSpatrick struct __less<_T1, _T1> 4576d0caaeSpatrick { 46*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 4776d0caaeSpatrick bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} 4876d0caaeSpatrick }; 4976d0caaeSpatrick 5076d0caaeSpatrick template <class _T1> 5176d0caaeSpatrick struct __less<const _T1, _T1> 5276d0caaeSpatrick { 53*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 5476d0caaeSpatrick bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} 5576d0caaeSpatrick }; 5676d0caaeSpatrick 5776d0caaeSpatrick template <class _T1> 5876d0caaeSpatrick struct __less<_T1, const _T1> 5976d0caaeSpatrick { 60*4bdff4beSrobert _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14 6176d0caaeSpatrick bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} 6276d0caaeSpatrick }; 6376d0caaeSpatrick 6476d0caaeSpatrick _LIBCPP_END_NAMESPACE_STD 6576d0caaeSpatrick 6676d0caaeSpatrick #endif // _LIBCPP___ALGORITHM_COMP_H 67