|
template<class E , class P , class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_partitioner_v<P, I, S> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, P p, I first, S last, T i, Fun f=std::plus<>()) const |
| | Complete overload.
|
| |
template<class E , class P , class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_partitioner_v<P, I, S> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, P p, I first, S last, T i, Fun f=std::plus<>()) const |
| | Complete overload.
|
| |
template<class E , class P , class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_partitioner_v<P, I, S> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, P p, I first, S last, Fun f=std::plus<>()) const |
| | Overload for default init value.
|
| |
template<class E , class P , class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_partitioner_v<P, I, S> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, P p, I first, S last, Fun f=std::plus<>()) const |
| |
template<class E , class P , class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_range_partitioner_v<P,R> && traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, P p, R &&r, T i, Fun f=std::plus<>()) const |
| | Overload for Ranges.
|
| |
template<class E , class P , class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_range_partitioner_v<P,R> && traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, P p, R &&r, T i, Fun f=std::plus<>()) const |
| |
template<class E , class P , class R , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_range_partitioner_v<P, R> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, P p, R &&r, Fun f=std::plus<>()) const |
| | Overload for Ranges / default init value.
|
| |
template<class E , class P , class R , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_range_partitioner_v<P, R> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, P p, R &&r, Fun f=std::plus<>()) const |
| |
template<class P , class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_partitioner_v< P, I, S> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (P p, I first, S last, T i, Fun f=std::plus<>()) const |
| | Overload for Iterators / default parallel executor.
|
| |
template<class P , class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_partitioner_v<P,I,S> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (P p, I first, S last, Fun f=std::plus<>()) const |
| | Overload for Iterators / default parallel executor / default init value.
|
| |
template<class P , class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_range_partitioner_v<P,R> && traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (P p, R &&r, T i, Fun f=std::plus<>()) const |
| | Overload for Ranges / default parallel executor.
|
| |
template<class P , class R , class Fun = std::plus<>>
requires ( // clang-format off traits::is_range_partitioner_v<P, R> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (P p, R &&r, Fun f=std::plus<>()) const |
| | Overload for Ranges / default parallel executor / default init value.
|
| |
template<class E , class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, I first, S last, T i, Fun f=std::plus<>()) const |
| | Overload for Iterators / default partitioner.
|
| |
template<class E , class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, I first, S last, T i, Fun f=std::plus<>()) const |
| |
template<class E , class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, I first, S last, Fun f=std::plus<>()) const |
| | Overload for Iterators / default partitioner / default init value.
|
| |
template<class E , class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, I first, S last, Fun f=std::plus<>()) const |
| |
template<class E , class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, R &&r, T i, Fun f=std::plus<>()) const |
| | Overload for Ranges / default partitioner.
|
| |
template<class E , class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, R &&r, T i, Fun f=std::plus<>()) const |
| |
template<class E , class R , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (const E &executor, R &&r, Fun f=std::plus<>()) const |
| | Overload for Ranges / default partitioner / default init value.
|
| |
template<class E , class R , class Fun = std::plus<>>
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (const E &executor, R &&r, Fun f=std::plus<>()) const |
| | Overload for Ranges / default partitioner / default init value.
|
| |
template<class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (I first, S last, T i, Fun f=std::plus<>()) const |
| | Overload for Iterators / default executor / default partitioner.
|
| |
template<class I , class S , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && std::is_same_v<traits::iter_value_t<I>, T> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (I first, S last, T i, Fun f=std::plus<>()) const |
| | Overload for Iterators / default executor / default partitioner.
|
| |
template<class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (I first, S last, Fun f=std::plus<>()) const |
| | Iterators / default executor / default partitioner / default init value.
|
| |
template<class I , class S , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<Fun, I, I> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (I first, S last, Fun f=std::plus<>()) const |
| | Iterators / default executor / default partitioner / default init value.
|
| |
template<class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | parallel (R &&r, T i, Fun f=std::plus<>()) const |
| | Overload for Ranges / default executor / default partitioner.
|
| |
template<class R , class T , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_range_v<R> && std::is_same_v<traits::range_value_t<R>, T> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (R &&r, T i, Fun f=std::plus<>()) const |
| | Overload for Ranges / default executor / default partitioner.
|
| |
template<class R , class Fun = std::plus<>>
requires ( // clang-format off traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<Fun, traits::iterator_t<R>, traits::iterator_t<R>> && std::is_copy_constructible_v<Fun> // clang-format on ) |
| constexpr decltype(auto) | operator() (R &&r, Fun f=std::plus<>()) const |
| | Ranges / default executor / default partitioner / default init value.
|
| |
template<
class Derived>
class CeresEngine::BinaryAlgorithmFunctor< Derived >
Binary algorithm overloads.
CRTP class with the overloads for algorithms that aggregate elements in a sequence with an binary function.
This includes algorithms such as reduce and accumulate.