diff options
Diffstat (limited to 'contrib/llvm-project/libcxx/include/__algorithm/comp.h')
| -rw-r--r-- | contrib/llvm-project/libcxx/include/__algorithm/comp.h | 50 | 
1 files changed, 12 insertions, 38 deletions
diff --git a/contrib/llvm-project/libcxx/include/__algorithm/comp.h b/contrib/llvm-project/libcxx/include/__algorithm/comp.h index 62c06ae57f23..af8eb7b5d76b 100644 --- a/contrib/llvm-project/libcxx/include/__algorithm/comp.h +++ b/contrib/llvm-project/libcxx/include/__algorithm/comp.h @@ -17,73 +17,47 @@  _LIBCPP_BEGIN_NAMESPACE_STD -// I'd like to replace these with _VSTD::equal_to<void>, but can't because: -//   * That only works with C++14 and later, and -//   * We haven't included <functional> here. -template <class _T1, class _T2 = _T1> -struct __equal_to -{ -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 bool operator()(const _T1& __x, const _T2& __y) const {return __x == __y;} -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 bool operator()(const _T2& __x, const _T1& __y) const {return __x == __y;} -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 bool operator()(const _T2& __x, const _T2& __y) const {return __x == __y;} -}; - -template <class _T1> -struct __equal_to<_T1, _T1> -{ -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} -}; - -template <class _T1> -struct __equal_to<const _T1, _T1> -{ -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} -}; - -template <class _T1> -struct __equal_to<_T1, const _T1> -{ -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 -    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} +struct __equal_to { +  template <class _T1, class _T2> +  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 bool operator()(const _T1& __x, const _T2& __y) const { +    return __x == __y; +  }  };  template <class _T1, class _T2 = _T1>  struct __less  { -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;} -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;} -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}  };  template <class _T1>  struct __less<_T1, _T1>  { -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}  };  template <class _T1>  struct __less<const _T1, _T1>  { -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}  };  template <class _T1>  struct __less<_T1, const _T1>  { -    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 +    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14      bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}  };  | 
