diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-25 17:35:41 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-19 21:12:22 +0000 | 
| commit | e710425beb3de4adcf4d601da2f224503f876b6d (patch) | |
| tree | aca526ac7dde15560ae28f549319b25647f28363 /contrib/llvm-project/libcxx/include/__algorithm/minmax.h | |
| parent | 1bc094c4a0e74dba87a5eb98cf138426a19f702d (diff) | |
Diffstat (limited to 'contrib/llvm-project/libcxx/include/__algorithm/minmax.h')
| -rw-r--r-- | contrib/llvm-project/libcxx/include/__algorithm/minmax.h | 48 | 
1 files changed, 19 insertions, 29 deletions
diff --git a/contrib/llvm-project/libcxx/include/__algorithm/minmax.h b/contrib/llvm-project/libcxx/include/__algorithm/minmax.h index 115bf93f90ba..5227b8857175 100644 --- a/contrib/llvm-project/libcxx/include/__algorithm/minmax.h +++ b/contrib/llvm-project/libcxx/include/__algorithm/minmax.h @@ -23,43 +23,33 @@  _LIBCPP_BEGIN_NAMESPACE_STD -template<class _Tp, class _Compare> -_LIBCPP_NODISCARD_EXT inline -_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 -pair<const _Tp&, const _Tp&> -minmax(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __b, _Compare __comp) -{ -    return __comp(__b, __a) ? pair<const _Tp&, const _Tp&>(__b, __a) : -                              pair<const _Tp&, const _Tp&>(__a, __b); +template <class _Tp, class _Compare> +_LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<const _Tp&, const _Tp&> +minmax(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __b, _Compare __comp) { +  return __comp(__b, __a) ? pair<const _Tp&, const _Tp&>(__b, __a) : pair<const _Tp&, const _Tp&>(__a, __b);  } -template<class _Tp> -_LIBCPP_NODISCARD_EXT inline -_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 -pair<const _Tp&, const _Tp&> -minmax(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __b) -{ -    return std::minmax(__a, __b, __less<>()); +template <class _Tp> +_LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<const _Tp&, const _Tp&> +minmax(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __b) { +  return std::minmax(__a, __b, __less<>());  }  #ifndef _LIBCPP_CXX03_LANG -template<class _Tp, class _Compare> -_LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 -pair<_Tp, _Tp> minmax(initializer_list<_Tp> __t, _Compare __comp) { -    static_assert(__is_callable<_Compare, _Tp, _Tp>::value, "The comparator has to be callable"); -    __identity __proj; -    auto __ret = std::__minmax_element_impl(__t.begin(), __t.end(), __comp, __proj); -    return pair<_Tp, _Tp>(*__ret.first, *__ret.second); +template <class _Tp, class _Compare> +_LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Tp, _Tp> +minmax(initializer_list<_Tp> __t, _Compare __comp) { +  static_assert(__is_callable<_Compare, _Tp, _Tp>::value, "The comparator has to be callable"); +  __identity __proj; +  auto __ret = std::__minmax_element_impl(__t.begin(), __t.end(), __comp, __proj); +  return pair<_Tp, _Tp>(*__ret.first, *__ret.second);  } -template<class _Tp> -_LIBCPP_NODISCARD_EXT inline -_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 -pair<_Tp, _Tp> -minmax(initializer_list<_Tp> __t) -{ -    return std::minmax(__t, __less<>()); +template <class _Tp> +_LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Tp, _Tp> +minmax(initializer_list<_Tp> __t) { +  return std::minmax(__t, __less<>());  }  #endif // _LIBCPP_CXX03_LANG  | 
