aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/libcxx/include/__pstl/internal/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/libcxx/include/__pstl/internal/utils.h')
-rw-r--r--contrib/llvm-project/libcxx/include/__pstl/internal/utils.h144
1 files changed, 0 insertions, 144 deletions
diff --git a/contrib/llvm-project/libcxx/include/__pstl/internal/utils.h b/contrib/llvm-project/libcxx/include/__pstl/internal/utils.h
deleted file mode 100644
index 92c8d48db5b1..000000000000
--- a/contrib/llvm-project/libcxx/include/__pstl/internal/utils.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _PSTL_UTILS_H
-#define _PSTL_UTILS_H
-
-#include <__config>
-#include <__exception/terminate.h>
-#include <__utility/forward.h>
-#include <new>
-
-#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
-
-namespace __pstl {
-namespace __internal {
-
-template <typename _Fp>
-_LIBCPP_HIDE_FROM_ABI auto __except_handler(_Fp __f) -> decltype(__f()) {
-#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
- try {
-#endif // _LIBCPP_HAS_NO_EXCEPTIONS
- return __f();
-#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
- } catch (const std::bad_alloc&) {
- throw; // re-throw bad_alloc according to the standard [algorithms.parallel.exceptions]
- } catch (...) {
- std::terminate(); // Good bye according to the standard [algorithms.parallel.exceptions]
- }
-#endif // _LIBCPP_HAS_NO_EXCEPTIONS
-}
-
-template <typename _Fp>
-_LIBCPP_HIDE_FROM_ABI void __invoke_if(std::true_type, _Fp __f) {
- __f();
-}
-
-template <typename _Fp>
-_LIBCPP_HIDE_FROM_ABI void __invoke_if(std::false_type, _Fp) {}
-
-template <typename _Fp>
-_LIBCPP_HIDE_FROM_ABI void __invoke_if_not(std::false_type, _Fp __f) {
- __f();
-}
-
-template <typename _Fp>
-_LIBCPP_HIDE_FROM_ABI void __invoke_if_not(std::true_type, _Fp) {}
-
-template <typename _F1, typename _F2>
-_LIBCPP_HIDE_FROM_ABI auto __invoke_if_else(std::true_type, _F1 __f1, _F2) -> decltype(__f1()) {
- return __f1();
-}
-
-template <typename _F1, typename _F2>
-_LIBCPP_HIDE_FROM_ABI auto __invoke_if_else(std::false_type, _F1, _F2 __f2) -> decltype(__f2()) {
- return __f2();
-}
-
-//! Unary operator that returns reference to its argument.
-struct __no_op {
- template <typename _Tp>
- _LIBCPP_HIDE_FROM_ABI _Tp&& operator()(_Tp&& __a) const {
- return std::forward<_Tp>(__a);
- }
-};
-
-template <typename _Pred>
-class __reorder_pred {
- _Pred __pred_;
-
-public:
- _LIBCPP_HIDE_FROM_ABI explicit __reorder_pred(_Pred __pred) : __pred_(__pred) {}
-
- template <typename _FTp, typename _STp>
- _LIBCPP_HIDE_FROM_ABI bool operator()(_FTp&& __a, _STp&& __b) {
- return __pred_(std::forward<_STp>(__b), std::forward<_FTp>(__a));
- }
-};
-
-//! Like a polymorphic lambda for pred(...,value)
-template <typename _Tp, typename _Predicate>
-class __equal_value_by_pred {
- const _Tp& __value_;
- _Predicate __pred_;
-
-public:
- _LIBCPP_HIDE_FROM_ABI __equal_value_by_pred(const _Tp& __value, _Predicate __pred)
- : __value_(__value), __pred_(__pred) {}
-
- template <typename _Arg>
- _LIBCPP_HIDE_FROM_ABI bool operator()(_Arg&& __arg) {
- return __pred_(std::forward<_Arg>(__arg), __value_);
- }
-};
-
-//! Like a polymorphic lambda for ==value
-template <typename _Tp>
-class __equal_value {
- const _Tp& __value_;
-
-public:
- _LIBCPP_HIDE_FROM_ABI explicit __equal_value(const _Tp& __value) : __value_(__value) {}
-
- template <typename _Arg>
- _LIBCPP_HIDE_FROM_ABI bool operator()(_Arg&& __arg) const {
- return std::forward<_Arg>(__arg) == __value_;
- }
-};
-
-//! Logical negation of ==value
-template <typename _Tp>
-class __not_equal_value {
- const _Tp& __value_;
-
-public:
- _LIBCPP_HIDE_FROM_ABI explicit __not_equal_value(const _Tp& __value) : __value_(__value) {}
-
- template <typename _Arg>
- _LIBCPP_HIDE_FROM_ABI bool operator()(_Arg&& __arg) const {
- return !(std::forward<_Arg>(__arg) == __value_);
- }
-};
-
-template <typename _ForwardIterator, typename _Compare>
-_LIBCPP_HIDE_FROM_ABI _ForwardIterator
-__cmp_iterators_by_values(_ForwardIterator __a, _ForwardIterator __b, _Compare __comp) {
- if (__a < __b) { // we should return closer iterator
- return __comp(*__b, *__a) ? __b : __a;
- } else {
- return __comp(*__a, *__b) ? __a : __b;
- }
-}
-
-} // namespace __internal
-} // namespace __pstl
-
-#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
-
-#endif /* _PSTL_UTILS_H */