diff options
Diffstat (limited to 'contrib/llvm-project/libcxx/include/__pstl/internal/algorithm_fwd.h')
| -rw-r--r-- | contrib/llvm-project/libcxx/include/__pstl/internal/algorithm_fwd.h | 1768 |
1 files changed, 0 insertions, 1768 deletions
diff --git a/contrib/llvm-project/libcxx/include/__pstl/internal/algorithm_fwd.h b/contrib/llvm-project/libcxx/include/__pstl/internal/algorithm_fwd.h deleted file mode 100644 index ba350392c2ac..000000000000 --- a/contrib/llvm-project/libcxx/include/__pstl/internal/algorithm_fwd.h +++ /dev/null @@ -1,1768 +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_ALGORITHM_FWD_H -#define _PSTL_ALGORITHM_FWD_H - -#include <__config> -#include <iterator> -#include <type_traits> -#include <utility> - -namespace __pstl { -namespace __internal { - -//------------------------------------------------------------------------ -// walk1 (pseudo) -// -// walk1 evaluates f(x) for each dereferenced value x drawn from [first,last) -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _Function> -void __brick_walk1(_ForwardIterator, - _ForwardIterator, - _Function, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _Function> -void __brick_walk1(_RandomAccessIterator, - _RandomAccessIterator, - _Function, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Function> -void __pattern_walk1(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Function) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Function> -void __pattern_walk1( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Function); - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Brick> -void __pattern_walk_brick(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Brick) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Brick> -void __pattern_walk_brick( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Brick); - -//------------------------------------------------------------------------ -// walk1_n -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _Size, class _Function> -_ForwardIterator __brick_walk1_n( - _ForwardIterator, - _Size, - _Function, - /*_IsVectorTag=*/std::false_type); - -template <class _RandomAccessIterator, class _DifferenceType, class _Function> -_RandomAccessIterator __brick_walk1_n( - _RandomAccessIterator, - _DifferenceType, - _Function, - /*vectorTag=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Function> -_ForwardIterator __pattern_walk1_n(_Tag, _ExecutionPolicy&&, _ForwardIterator, _Size, _Function) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Size, class _Function> -_RandomAccessIterator -__pattern_walk1_n(__parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _Size, _Function); - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Brick> -_ForwardIterator __pattern_walk_brick_n(_Tag, _ExecutionPolicy&&, _ForwardIterator, _Size, _Brick) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Size, class _Brick> -_RandomAccessIterator -__pattern_walk_brick_n(__parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _Size, _Brick); - -//------------------------------------------------------------------------ -// walk2 (pseudo) -// -// walk2 evaluates f(x,y) for deferenced values (x,y) drawn from [first1,last1) and [first2,...) -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _Function> -_ForwardIterator2 __brick_walk2( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _Function, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _Function> -_RandomAccessIterator2 __brick_walk2( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _Function, - /*vector=*/std::true_type) noexcept; - -template <class _ForwardIterator1, class _Size, class _ForwardIterator2, class _Function> -_ForwardIterator2 __brick_walk2_n( - _ForwardIterator1, - _Size, - _ForwardIterator2, - _Function, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _Size, class _RandomAccessIterator2, class _Function> -_RandomAccessIterator2 __brick_walk2_n( - _RandomAccessIterator1, - _Size, - _RandomAccessIterator2, - _Function, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _Function> -_ForwardIterator2 -__pattern_walk2(_Tag, _ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _Function) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Function> -_RandomAccessIterator2 __pattern_walk2( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _Function); - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _Size, - class _ForwardIterator2, - class _Function> -_ForwardIterator2 -__pattern_walk2_n(_Tag, _ExecutionPolicy&&, _ForwardIterator1, _Size, _ForwardIterator2, _Function) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _Size, - class _RandomAccessIterator2, - class _Function> -_RandomAccessIterator2 __pattern_walk2_n( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator1, _Size, _RandomAccessIterator2, _Function); - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _Brick> -_ForwardIterator2 __pattern_walk2_brick( - _Tag, _ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _Brick) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Brick> -_RandomAccessIterator2 __pattern_walk2_brick( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _Brick); - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _Size, - class _ForwardIterator2, - class _Brick> -_ForwardIterator2 -__pattern_walk2_brick_n(_Tag, _ExecutionPolicy&&, _ForwardIterator1, _Size, _ForwardIterator2, _Brick) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _Size, - class _RandomAccessIterator2, - class _Brick> -_RandomAccessIterator2 __pattern_walk2_brick_n( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator1, _Size, _RandomAccessIterator2, _Brick); - -//------------------------------------------------------------------------ -// walk3 (pseudo) -// -// walk3 evaluates f(x,y,z) for (x,y,z) drawn from [first1,last1), [first2,...), [first3,...) -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator3, class _Function> -_ForwardIterator3 __brick_walk3( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator3, - _Function, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _RandomAccessIterator3, class _Function> -_RandomAccessIterator3 __brick_walk3( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator3, - _Function, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _ForwardIterator2, - class _ForwardIterator3, - class _Function> -_ForwardIterator3 __pattern_walk3( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator3, - _Function) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _RandomAccessIterator3, - class _Function> -_RandomAccessIterator3 __pattern_walk3( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator3, - _Function); - -//------------------------------------------------------------------------ -// equal -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -bool __brick_equal(_ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _BinaryPredicate, - /* is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _BinaryPredicate> -bool __brick_equal(_RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _BinaryPredicate, - /* is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -bool __pattern_equal( - _Tag, _ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _BinaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _BinaryPredicate> -bool __pattern_equal( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _BinaryPredicate); - -template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -bool __brick_equal(_ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate, - /* is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _BinaryPredicate> -bool __brick_equal(_RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate, - /* is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -bool __pattern_equal( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _BinaryPredicate> -bool __pattern_equal( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate); - -//------------------------------------------------------------------------ -// find_end -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -_ForwardIterator1 __brick_find_end( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _BinaryPredicate> -_RandomAccessIterator1 __brick_find_end( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -_ForwardIterator1 __pattern_find_end( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _BinaryPredicate> -_RandomAccessIterator1 __pattern_find_end( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// find_first_of -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -_ForwardIterator1 __brick_find_first_of( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _BinaryPredicate> -_RandomAccessIterator1 __brick_find_first_of( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -_ForwardIterator1 __pattern_find_first_of( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _BinaryPredicate> -_RandomAccessIterator1 __pattern_find_first_of( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// search -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -_ForwardIterator1 __brick_search( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _BinaryPredicate> -_RandomAccessIterator1 __brick_search( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> -_ForwardIterator1 __pattern_search( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _BinaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _BinaryPredicate> -_RandomAccessIterator1 __pattern_search( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _BinaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// search_n -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _Size, class _Tp, class _BinaryPredicate> -_ForwardIterator __brick_search_n( - _ForwardIterator, - _ForwardIterator, - _Size, - const _Tp&, - _BinaryPredicate, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _Size, class _Tp, class _BinaryPredicate> -_RandomAccessIterator __brick_search_n( - _RandomAccessIterator, - _RandomAccessIterator, - _Size, - const _Tp&, - _BinaryPredicate, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Tp, class _BinaryPredicate> -_ForwardIterator __pattern_search_n( - _Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Size, const _Tp&, _BinaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator, - class _Size, - class _Tp, - class _BinaryPredicate> -_RandomAccessIterator __pattern_search_n( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _Size, - const _Tp&, - _BinaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// copy_n -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _Size, class _OutputIterator> -_OutputIterator __brick_copy_n(_ForwardIterator, - _Size, - _OutputIterator, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _Size, class _OutputIterator> -_OutputIterator __brick_copy_n(_RandomAccessIterator, - _Size, - _OutputIterator, - /*vector=*/std::true_type) noexcept; - -//------------------------------------------------------------------------ -// copy -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _OutputIterator> -_OutputIterator __brick_copy(_ForwardIterator, - _ForwardIterator, - _OutputIterator, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __brick_copy(_RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - /*vector=*/std::true_type) noexcept; - -//------------------------------------------------------------------------ -// move -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _OutputIterator> -_OutputIterator __brick_move(_ForwardIterator, - _ForwardIterator, - _OutputIterator, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __brick_move(_RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - /*vector=*/std::true_type) noexcept; - -//------------------------------------------------------------------------ -// swap_ranges -//------------------------------------------------------------------------ -template <class _ForwardIterator, class _OutputIterator> -_OutputIterator __brick_swap_ranges( - _ForwardIterator, - _ForwardIterator, - _OutputIterator, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __brick_swap_ranges( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - /*vector=*/std::true_type) noexcept; - -//------------------------------------------------------------------------ -// copy_if -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _OutputIterator, class _UnaryPredicate> -_OutputIterator __brick_copy_if( - _ForwardIterator, - _ForwardIterator, - _OutputIterator, - _UnaryPredicate, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator, class _UnaryPredicate> -_OutputIterator __brick_copy_if( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - _UnaryPredicate, - /*vector=*/std::true_type) noexcept; - -template <class _DifferenceType, class _ForwardIterator, class _UnaryPredicate> -std::pair<_DifferenceType, _DifferenceType> __brick_calc_mask_1( - _ForwardIterator, - _ForwardIterator, - bool* __restrict, - _UnaryPredicate, - /*vector=*/std::false_type) noexcept; -template <class _DifferenceType, class _RandomAccessIterator, class _UnaryPredicate> -std::pair<_DifferenceType, _DifferenceType> __brick_calc_mask_1( - _RandomAccessIterator, - _RandomAccessIterator, - bool* __restrict, - _UnaryPredicate, - /*vector=*/std::true_type) noexcept; - -template <class _ForwardIterator, class _OutputIterator> -void __brick_copy_by_mask( - _ForwardIterator, - _ForwardIterator, - _OutputIterator, - bool*, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator> -void __brick_copy_by_mask( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - bool* __restrict, - /*vector=*/std::true_type) noexcept; - -template <class _ForwardIterator, class _OutputIterator1, class _OutputIterator2> -void __brick_partition_by_mask( - _ForwardIterator, - _ForwardIterator, - _OutputIterator1, - _OutputIterator2, - bool*, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator1, class _OutputIterator2> -void __brick_partition_by_mask( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator1, - _OutputIterator2, - bool*, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _OutputIterator, class _UnaryPredicate> -_OutputIterator __pattern_copy_if( - _Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _OutputIterator, _UnaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator, - class _OutputIterator, - class _UnaryPredicate> -_OutputIterator __pattern_copy_if( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - _UnaryPredicate); - -//------------------------------------------------------------------------ -// count -//------------------------------------------------------------------------ - -template <class _RandomAccessIterator, class _Predicate> -typename std::iterator_traits<_RandomAccessIterator>::difference_type __brick_count( - _RandomAccessIterator, - _RandomAccessIterator, - _Predicate, - /* is_vector = */ std::true_type) noexcept; - -template <class _ForwardIterator, class _Predicate> -typename std::iterator_traits<_ForwardIterator>::difference_type __brick_count( - _ForwardIterator, - _ForwardIterator, - _Predicate, - /* is_vector = */ std::false_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Predicate> -typename std::iterator_traits<_ForwardIterator>::difference_type -__pattern_count(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Predicate) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Predicate> -typename std::iterator_traits<_RandomAccessIterator>::difference_type __pattern_count( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Predicate); - -//------------------------------------------------------------------------ -// unique -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _BinaryPredicate> -_ForwardIterator __brick_unique( - _ForwardIterator, - _ForwardIterator, - _BinaryPredicate, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _BinaryPredicate> -_RandomAccessIterator __brick_unique( - _RandomAccessIterator, - _RandomAccessIterator, - _BinaryPredicate, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _BinaryPredicate> -_ForwardIterator -__pattern_unique(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _BinaryPredicate) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _BinaryPredicate> -_RandomAccessIterator __pattern_unique( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _BinaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// unique_copy -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class OutputIterator, class _BinaryPredicate> -OutputIterator __brick_unique_copy( - _ForwardIterator, - _ForwardIterator, - OutputIterator, - _BinaryPredicate, - /*vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator, class _BinaryPredicate> -_OutputIterator __brick_unique_copy( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - _BinaryPredicate, - /*vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _OutputIterator, class _BinaryPredicate> -_OutputIterator __pattern_unique_copy( - _Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _OutputIterator, _BinaryPredicate) noexcept; - -template <class _ExecutionPolicy, class _DifferenceType, class _RandomAccessIterator, class _BinaryPredicate> -_DifferenceType __brick_calc_mask_2( - _RandomAccessIterator, - _RandomAccessIterator, - bool* __restrict, - _BinaryPredicate, - /*vector=*/std::false_type) noexcept; - -template <class _DifferenceType, class _RandomAccessIterator, class _BinaryPredicate> -_DifferenceType __brick_calc_mask_2( - _RandomAccessIterator, - _RandomAccessIterator, - bool* __restrict, - _BinaryPredicate, - /*vector=*/std::true_type) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator, - class _OutputIterator, - class _BinaryPredicate> -_OutputIterator __pattern_unique_copy( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - _BinaryPredicate); - -//------------------------------------------------------------------------ -// reverse -//------------------------------------------------------------------------ - -template <class _BidirectionalIterator> -void __brick_reverse(_BidirectionalIterator, - _BidirectionalIterator, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator> -void __brick_reverse(_RandomAccessIterator, - _RandomAccessIterator, - /*__is_vector=*/std::true_type) noexcept; - -template <class _BidirectionalIterator> -void __brick_reverse(_BidirectionalIterator, - _BidirectionalIterator, - _BidirectionalIterator, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator> -void __brick_reverse(_RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _BidirectionalIterator> -void __pattern_reverse(_Tag, _ExecutionPolicy&&, _BidirectionalIterator, _BidirectionalIterator) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator> -void __pattern_reverse(__parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator); - -//------------------------------------------------------------------------ -// reverse_copy -//------------------------------------------------------------------------ - -template <class _BidirectionalIterator, class _OutputIterator> -_OutputIterator __brick_reverse_copy( - _BidirectionalIterator, - _BidirectionalIterator, - _OutputIterator, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __brick_reverse_copy( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _BidirectionalIterator, class _OutputIterator> -_OutputIterator __pattern_reverse_copy( - _Tag, _ExecutionPolicy&&, _BidirectionalIterator, _BidirectionalIterator, _OutputIterator) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __pattern_reverse_copy( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _OutputIterator); - -//------------------------------------------------------------------------ -// rotate -//------------------------------------------------------------------------ - -template <class _ForwardIterator> -_ForwardIterator __brick_rotate( - _ForwardIterator, - _ForwardIterator, - _ForwardIterator, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator> -_RandomAccessIterator __brick_rotate( - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator> -_ForwardIterator -__pattern_rotate(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _ForwardIterator) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator> -_RandomAccessIterator __pattern_rotate( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator); - -//------------------------------------------------------------------------ -// rotate_copy -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _OutputIterator> -_OutputIterator __brick_rotate_copy( - _ForwardIterator, - _ForwardIterator, - _ForwardIterator, - _OutputIterator, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __brick_rotate_copy( - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _OutputIterator> -_OutputIterator __pattern_rotate_copy( - _Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _ForwardIterator, _OutputIterator) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _OutputIterator> -_OutputIterator __pattern_rotate_copy( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator); - -//------------------------------------------------------------------------ -// is_partitioned -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _UnaryPredicate> -bool __brick_is_partitioned(_ForwardIterator, - _ForwardIterator, - _UnaryPredicate, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _UnaryPredicate> -bool __brick_is_partitioned(_RandomAccessIterator, - _RandomAccessIterator, - _UnaryPredicate, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _UnaryPredicate> -bool __pattern_is_partitioned(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _UnaryPredicate) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _UnaryPredicate> -bool __pattern_is_partitioned( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _UnaryPredicate); - -//------------------------------------------------------------------------ -// partition -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _UnaryPredicate> -_ForwardIterator __brick_partition( - _ForwardIterator, - _ForwardIterator, - _UnaryPredicate, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _UnaryPredicate> -_RandomAccessIterator __brick_partition( - _RandomAccessIterator, - _RandomAccessIterator, - _UnaryPredicate, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _UnaryPredicate> -_ForwardIterator -__pattern_partition(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _UnaryPredicate) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _UnaryPredicate> -_RandomAccessIterator __pattern_partition( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _UnaryPredicate); - -//------------------------------------------------------------------------ -// stable_partition -//------------------------------------------------------------------------ - -template <class _BidirectionalIterator, class _UnaryPredicate> -_BidirectionalIterator __brick_stable_partition( - _BidirectionalIterator, - _BidirectionalIterator, - _UnaryPredicate, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _UnaryPredicate> -_RandomAccessIterator __brick_stable_partition( - _RandomAccessIterator, - _RandomAccessIterator, - _UnaryPredicate, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _BidirectionalIterator, class _UnaryPredicate> -_BidirectionalIterator __pattern_stable_partition( - _Tag, _ExecutionPolicy&&, _BidirectionalIterator, _BidirectionalIterator, _UnaryPredicate) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _UnaryPredicate> -_RandomAccessIterator __pattern_stable_partition( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _UnaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// partition_copy -//------------------------------------------------------------------------ - -template <class _ForwardIterator, class _OutputIterator1, class _OutputIterator2, class _UnaryPredicate> -std::pair<_OutputIterator1, _OutputIterator2> __brick_partition_copy( - _ForwardIterator, - _ForwardIterator, - _OutputIterator1, - _OutputIterator2, - _UnaryPredicate, - /*is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator, class _OutputIterator1, class _OutputIterator2, class _UnaryPredicate> -std::pair<_OutputIterator1, _OutputIterator2> __brick_partition_copy( - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator1, - _OutputIterator2, - _UnaryPredicate, - /*is_vector=*/std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator, - class _OutputIterator1, - class _OutputIterator2, - class _UnaryPredicate> -std::pair<_OutputIterator1, _OutputIterator2> __pattern_partition_copy( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator, - _ForwardIterator, - _OutputIterator1, - _OutputIterator2, - _UnaryPredicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator, - class _OutputIterator1, - class _OutputIterator2, - class _UnaryPredicate> -std::pair<_OutputIterator1, _OutputIterator2> __pattern_partition_copy( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _OutputIterator1, - _OutputIterator2, - _UnaryPredicate); - -//------------------------------------------------------------------------ -// sort -//------------------------------------------------------------------------ - -template <class _Tag, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare, class _IsMoveConstructible> -void __pattern_sort( - _Tag, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare, _IsMoveConstructible) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_sort(__parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _Compare, - /*is_move_constructible=*/std::true_type); - -//------------------------------------------------------------------------ -// stable_sort -//------------------------------------------------------------------------ - -template <class _Tag, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_stable_sort(_Tag, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_stable_sort( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare); - -//------------------------------------------------------------------------ -// partial_sort -//------------------------------------------------------------------------ - -template <class _Tag, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_partial_sort( - _Tag, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_partial_sort( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - _Compare); - -//------------------------------------------------------------------------ -// partial_sort_copy -//------------------------------------------------------------------------ - -template <class _Tag, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Compare> -_RandomAccessIterator2 __pattern_partial_sort_copy( - _Tag, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Compare> -_RandomAccessIterator2 __pattern_partial_sort_copy( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Compare); - -//------------------------------------------------------------------------ -// adjacent_find -//------------------------------------------------------------------------ - -template <class _RandomAccessIterator, class _BinaryPredicate> -_RandomAccessIterator __brick_adjacent_find( - _RandomAccessIterator, - _RandomAccessIterator, - _BinaryPredicate, - /* IsVector = */ std::true_type, - bool) noexcept; - -template <class _ForwardIterator, class _BinaryPredicate> -_ForwardIterator __brick_adjacent_find( - _ForwardIterator, - _ForwardIterator, - _BinaryPredicate, - /* IsVector = */ std::false_type, - bool) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _BinaryPredicate> -_ForwardIterator -__pattern_adjacent_find(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _BinaryPredicate, bool) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _BinaryPredicate> -_RandomAccessIterator __pattern_adjacent_find( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _BinaryPredicate, - bool); - -//------------------------------------------------------------------------ -// nth_element -//------------------------------------------------------------------------ -template <class _Tag, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_nth_element( - _Tag, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_nth_element( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - _Compare) noexcept; - -//------------------------------------------------------------------------ -// fill, fill_n -//------------------------------------------------------------------------ -template <class _RandomAccessIterator, class _Tp> -void __brick_fill(_RandomAccessIterator, - _RandomAccessIterator, - const _Tp&, - /* __is_vector = */ std::true_type) noexcept; - -template <class _ForwardIterator, class _Tp> -void __brick_fill(_ForwardIterator, - _ForwardIterator, - const _Tp&, - /* __is_vector = */ std::false_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Tp> -void __pattern_fill(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, const _Tp&) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Tp> -_RandomAccessIterator -__pattern_fill(__parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, const _Tp&); - -template <class _RandomAccessIterator, class _Size, class _Tp> -_RandomAccessIterator -__brick_fill_n(_RandomAccessIterator, - _Size, - const _Tp&, - /* __is_vector = */ std::true_type) noexcept; - -template <class _OutputIterator, class _Size, class _Tp> -_OutputIterator -__brick_fill_n(_OutputIterator, - _Size, - const _Tp&, - /* __is_vector = */ std::false_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _OutputIterator, class _Size, class _Tp> -_OutputIterator __pattern_fill_n(_Tag, _ExecutionPolicy&&, _OutputIterator, _Size, const _Tp&) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Size, class _Tp> -_RandomAccessIterator -__pattern_fill_n(__parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _Size, const _Tp&); - -//------------------------------------------------------------------------ -// generate, generate_n -//------------------------------------------------------------------------ - -template <class _RandomAccessIterator, class _Generator> -void __brick_generate(_RandomAccessIterator, - _RandomAccessIterator, - _Generator, - /* is_vector = */ std::true_type) noexcept; - -template <class _ForwardIterator, class _Generator> -void __brick_generate(_ForwardIterator, - _ForwardIterator, - _Generator, - /* is_vector = */ std::false_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _Generator> -void __pattern_generate(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Generator) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Generator> -_RandomAccessIterator __pattern_generate( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Generator); - -template <class _RandomAccessIterator, class Size, class _Generator> -_RandomAccessIterator __brick_generate_n( - _RandomAccessIterator, - Size, - _Generator, - /* is_vector = */ std::true_type) noexcept; - -template <class OutputIterator, class Size, class _Generator> -OutputIterator __brick_generate_n( - OutputIterator, - Size, - _Generator, - /* is_vector = */ std::false_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class OutputIterator, class Size, class _Generator> -OutputIterator __pattern_generate_n(_Tag, _ExecutionPolicy&&, OutputIterator, Size, _Generator) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class Size, class _Generator> -_RandomAccessIterator -__pattern_generate_n(__parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, Size, _Generator); - -//------------------------------------------------------------------------ -// remove -//------------------------------------------------------------------------ -template <class _ForwardIterator, class _UnaryPredicate> -_ForwardIterator __brick_remove_if( - _ForwardIterator, - _ForwardIterator, - _UnaryPredicate, - /* __is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator, class _UnaryPredicate> -_RandomAccessIterator __brick_remove_if( - _RandomAccessIterator, - _RandomAccessIterator, - _UnaryPredicate, - /* __is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator, class _UnaryPredicate> -_ForwardIterator -__pattern_remove_if(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _UnaryPredicate) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _UnaryPredicate> -_RandomAccessIterator __pattern_remove_if( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _UnaryPredicate) noexcept; - -//------------------------------------------------------------------------ -// merge -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_merge( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare, - /* __is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_merge( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare, - /* __is_vector = */ std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _ForwardIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_merge( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_merge( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare); - -//------------------------------------------------------------------------ -// inplace_merge -//------------------------------------------------------------------------ - -template <class _BidirectionalIterator, class _Compare> -void __brick_inplace_merge( - _BidirectionalIterator, - _BidirectionalIterator, - _BidirectionalIterator, - _Compare, - /* __is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator, class _Compare> -void __brick_inplace_merge( - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - _Compare, - /* __is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _BidirectionalIterator, class _Compare> -void __pattern_inplace_merge( - _Tag, - _ExecutionPolicy&&, - _BidirectionalIterator, - _BidirectionalIterator, - _BidirectionalIterator, - _Compare) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -void __pattern_inplace_merge( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator, - _RandomAccessIterator, - _RandomAccessIterator, - _Compare); - -//------------------------------------------------------------------------ -// includes -//------------------------------------------------------------------------ - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _Compare> -bool __pattern_includes( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Compare> -bool __pattern_includes( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Compare); - -//------------------------------------------------------------------------ -// set_union -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_union( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_union( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _ForwardIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_union( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_union( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare); - -//------------------------------------------------------------------------ -// set_intersection -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_intersection( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_intersection( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _ForwardIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_intersection( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_intersection( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare); - -//------------------------------------------------------------------------ -// set_difference -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_difference( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_difference( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _ForwardIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_difference( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_difference( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare); - -//------------------------------------------------------------------------ -// set_symmetric_difference -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_symmetric_difference( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _OutputIterator, class _Compare> -_OutputIterator __brick_set_symmetric_difference( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare, - /*__is_vector=*/std::true_type) noexcept; - -template <class _Tag, - class _ExecutionPolicy, - class _ForwardIterator1, - class _ForwardIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_symmetric_difference( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _OutputIterator, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _OutputIterator, - class _Compare> -_OutputIterator __pattern_set_symmetric_difference( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _OutputIterator, - _Compare); - -//------------------------------------------------------------------------ -// is_heap_until -//------------------------------------------------------------------------ - -template <class _RandomAccessIterator, class _Compare> -_RandomAccessIterator __brick_is_heap_until( - _RandomAccessIterator, - _RandomAccessIterator, - _Compare, - /* __is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator, class _Compare> -_RandomAccessIterator __brick_is_heap_until( - _RandomAccessIterator, - _RandomAccessIterator, - _Compare, - /* __is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -_RandomAccessIterator -__pattern_is_heap_until(_Tag, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare) noexcept; - -template <class _IsVector, class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> -_RandomAccessIterator __pattern_is_heap_until( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare) noexcept; - -//------------------------------------------------------------------------ -// min_element -//------------------------------------------------------------------------ - -template <typename _ForwardIterator, typename _Compare> -_ForwardIterator __brick_min_element( - _ForwardIterator, - _ForwardIterator, - _Compare, - /* __is_vector = */ std::false_type) noexcept; - -template <typename _RandomAccessIterator, typename _Compare> -_RandomAccessIterator __brick_min_element( - _RandomAccessIterator, - _RandomAccessIterator, - _Compare, - /* __is_vector = */ std::true_type) noexcept; - -template <typename _Tag, typename _ExecutionPolicy, typename _ForwardIterator, typename _Compare> -_ForwardIterator __pattern_min_element(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Compare) noexcept; - -template <typename _IsVector, typename _ExecutionPolicy, typename _RandomAccessIterator, typename _Compare> -_RandomAccessIterator __pattern_min_element( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare); - -//------------------------------------------------------------------------ -// minmax_element -//------------------------------------------------------------------------ - -template <typename _ForwardIterator, typename _Compare> -std::pair<_ForwardIterator, _ForwardIterator> __brick_minmax_element( - _ForwardIterator, - _ForwardIterator, - _Compare, - /* __is_vector = */ std::false_type) noexcept; - -template <typename _RandomAccessIterator, typename _Compare> -std::pair<_RandomAccessIterator, _RandomAccessIterator> __brick_minmax_element( - _RandomAccessIterator, - _RandomAccessIterator, - _Compare, - /* __is_vector = */ std::true_type) noexcept; - -template <typename _Tag, typename _ExecutionPolicy, typename _ForwardIterator, typename _Compare> -std::pair<_ForwardIterator, _ForwardIterator> -__pattern_minmax_element(_Tag, _ExecutionPolicy&&, _ForwardIterator, _ForwardIterator, _Compare) noexcept; - -template <typename _IsVector, typename _ExecutionPolicy, typename _RandomAccessIterator, typename _Compare> -std::pair<_RandomAccessIterator, _RandomAccessIterator> __pattern_minmax_element( - __parallel_tag<_IsVector>, _ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare); - -//------------------------------------------------------------------------ -// mismatch -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _Predicate> -std::pair<_ForwardIterator1, _ForwardIterator2> __brick_mismatch( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _Predicate, - /* __is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _Predicate> -std::pair<_RandomAccessIterator1, _RandomAccessIterator2> __brick_mismatch( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Predicate, - /* __is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _Predicate> -std::pair<_ForwardIterator1, _ForwardIterator2> __pattern_mismatch( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _Predicate) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Predicate> -std::pair<_RandomAccessIterator1, _RandomAccessIterator2> __pattern_mismatch( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Predicate) noexcept; - -//------------------------------------------------------------------------ -// lexicographical_compare -//------------------------------------------------------------------------ - -template <class _ForwardIterator1, class _ForwardIterator2, class _Compare> -bool __brick_lexicographical_compare( - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _Compare, - /* __is_vector = */ std::false_type) noexcept; - -template <class _RandomAccessIterator1, class _RandomAccessIterator2, class _Compare> -bool __brick_lexicographical_compare( - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Compare, - /* __is_vector = */ std::true_type) noexcept; - -template <class _Tag, class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _Compare> -bool __pattern_lexicographical_compare( - _Tag, - _ExecutionPolicy&&, - _ForwardIterator1, - _ForwardIterator1, - _ForwardIterator2, - _ForwardIterator2, - _Compare) noexcept; - -template <class _IsVector, - class _ExecutionPolicy, - class _RandomAccessIterator1, - class _RandomAccessIterator2, - class _Compare> -bool __pattern_lexicographical_compare( - __parallel_tag<_IsVector>, - _ExecutionPolicy&&, - _RandomAccessIterator1, - _RandomAccessIterator1, - _RandomAccessIterator2, - _RandomAccessIterator2, - _Compare) noexcept; - -} // namespace __internal -} // namespace __pstl - -#endif /* _PSTL_ALGORITHM_FWD_H */ |
