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

Value-compare algorithm overloads. More...

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

Public Member Functions

template<class E , class P , class I , class S , class T >
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<std::equal_to<>, T *, I> // clang-format on )
constexpr decltype(autooperator() (const E &executor, P p, I first, S last, T f) const
 Complete overload.
 
template<class E , class P , class R , class T >
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<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(autooperator() (const E &executor, P p, R &&r, T f) const
 Overload for Ranges.
 
template<class P , class I , class S , class T >
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<std::equal_to<>, T *, I> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(autooperator() (P p, I first, S last, T f) const
 Overload for Iterators / default parallel executor.
 
template<class P , class R , class T >
requires ( // clang-format off traits::is_range_partitioner_v<P, R> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(autooperator() (P p, R &&r, T f) const
 Overload for Ranges / default parallel executor.
 
template<class E , class I , class S , class T >
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<std::equal_to<>, T *, I> // clang-format on )
constexpr decltype(autooperator() (const E &executor, I first, S last, T f) const
 Overload for Iterators / default partitioner.
 
template<class E , class R , class T >
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(autooperator() (const E &executor, R &&r, T f) const
 Overload for Ranges / default partitioner.
 
template<class I , class S , class T >
requires ( // clang-format off traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, I> // clang-format on )
constexpr decltype(autooperator() (I first, S last, T f) const
 Overload for Iterators / default executor / default partitioner.
 
template<class R , class T >
requires ( // clang-format off traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(autooperator() (R &&r, T f) const
 Overload for Ranges / default executor / default partitioner.
 

Detailed Description

template<class Derived>
class CeresEngine::ValueCompareAlgorithmFunctor< Derived >

Value-compare algorithm overloads.

CRTP class with the overloads for classes that look for elements in a sequence with an unary function This includes algorithms such as for_each, any_of, all_of, ...

Member Function Documentation

◆ operator()() [1/8]

template<class Derived >
template<class E , class I , class S , class T >
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<std::equal_to<>, T *, I> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( const E executor,
I  first,
S  last,
T  f 
) const
inlineconstexpr

Overload for Iterators / default partitioner.

◆ operator()() [2/8]

template<class Derived >
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( const E executor,
P  p,
I  first,
S  last,
T  f 
) const
inlineconstexpr

Complete overload.

◆ operator()() [3/8]

template<class Derived >
template<class E , class P , class R , class T >
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<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( const E executor,
P  p,
R &&  r,
T  f 
) const
inlineconstexpr

Overload for Ranges.

◆ operator()() [4/8]

template<class Derived >
template<class E , class R , class T >
requires ( // clang-format off traits::is_executor_v<E> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( const E executor,
R &&  r,
T  f 
) const
inlineconstexpr

Overload for Ranges / default partitioner.

◆ operator()() [5/8]

template<class Derived >
template<class I , class S , class T >
requires ( // clang-format off traits::is_input_iterator_v<I> && traits::is_sentinel_for_v<S, I> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, I> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( I  first,
S  last,
T  f 
) const
inlineconstexpr

Overload for Iterators / default executor / default partitioner.

◆ operator()() [6/8]

template<class Derived >
template<class P , class I , class S , class T >
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<std::equal_to<>, T *, I> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( P  p,
I  first,
S  last,
T  f 
) const
inlineconstexpr

Overload for Iterators / default parallel executor.

◆ operator()() [7/8]

template<class Derived >
template<class P , class R , class T >
requires ( // clang-format off traits::is_range_partitioner_v<P, R> && traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( P  p,
R &&  r,
T  f 
) const
inlineconstexpr

Overload for Ranges / default parallel executor.

◆ operator()() [8/8]

template<class Derived >
template<class R , class T >
requires ( // clang-format off traits::is_input_range_v<R> && traits::is_indirectly_binary_invocable_v<std::equal_to<>, T *, traits::iterator_t<R>> && std::is_copy_constructible_v<T> // clang-format on )
constexpr decltype(auto) CeresEngine::ValueCompareAlgorithmFunctor< Derived >::operator() ( R &&  r,
T  f 
) const
inlineconstexpr

Overload for Ranges / default executor / default partitioner.


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