CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::BinaryAlgorithmFunctor< Derived > Class Template Reference

Binary algorithm overloads. More...

#include <CeresEngine/Foundation/Algorithm/BinaryAlgorithm.hpp>

Public Member Functions

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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autoparallel (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(autoparallel (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(autoparallel (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autoparallel (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(autooperator() (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(autooperator() (R &&r, Fun f=std::plus<>()) const
 Ranges / default executor / default partitioner / default init value.
 

Detailed Description

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.

Member Function Documentation

◆ operator()() [1/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

◆ operator()() [2/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

◆ operator()() [3/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
P  p,
I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

◆ operator()() [4/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
P  p,
I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Complete overload.

◆ operator()() [5/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
P  p,
R &&  r,
Fun  f = std::plus<>() 
) const
inlineconstexpr

◆ operator()() [6/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
P  p,
R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

◆ operator()() [7/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
R &&  r,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default partitioner / default init value.

◆ operator()() [8/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( const E executor,
R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

◆ operator()() [9/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Iterators / default executor / default partitioner / default init value.

◆ operator()() [10/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Iterators / default executor / default partitioner.

◆ operator()() [11/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( R &&  r,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Ranges / default executor / default partitioner / default init value.

◆ operator()() [12/12]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::operator() ( R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default executor / default partitioner.

◆ parallel() [1/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Iterators / default partitioner / default init value.

◆ parallel() [2/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Iterators / default partitioner.

◆ parallel() [3/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
P  p,
I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for default init value.

◆ parallel() [4/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
P  p,
I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Complete overload.

◆ parallel() [5/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
P  p,
R &&  r,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default init value.

◆ parallel() [6/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
P  p,
R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges.

◆ parallel() [7/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
R &&  r,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default partitioner / default init value.

◆ parallel() [8/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( const E executor,
R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default partitioner.

◆ parallel() [9/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Iterators / default executor / default partitioner / default init value.

◆ parallel() [10/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Iterators / default executor / default partitioner.

◆ parallel() [11/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( P  p,
I  first,
S  last,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Iterators / default parallel executor / default init value.

◆ parallel() [12/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( P  p,
I  first,
S  last,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Iterators / default parallel executor.

◆ parallel() [13/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( P  p,
R &&  r,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default parallel executor / default init value.

◆ parallel() [14/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( P  p,
R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default parallel executor.

◆ parallel() [15/15]

template<class Derived >
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) CeresEngine::BinaryAlgorithmFunctor< Derived >::parallel ( R &&  r,
T  i,
Fun  f = std::plus<>() 
) const
inlineconstexpr

Overload for Ranges / default executor / default partitioner.


The documentation for this class was generated from the following file: