5#include "Algo/Impl/RangePointerType.h"
6#include "Templates/IdentityFunctor.h"
7#include "Templates/Invoke.h"
8#include "Templates/Less.h"
9#include "Templates/UnrealTemplate.h"
13 template <
typename RangeType,
typename ProjectionType,
typename PredicateType>
33
34
35
36
37
38
39 template <
typename RangeType>
47
48
49
50
51
52
53
54 template <
typename RangeType,
typename ComparatorType>
62
63
64
65
66
67
68
69 template <
typename RangeType,
typename ProjectionType>
77
78
79
80
81
82
83
84
85 template <
typename RangeType,
typename ProjectionType,
typename ComparatorType>
87 ->
decltype(
AlgoImpl::MaxElementBy(Range, MoveTemp(Proj), MoveTemp(Comp)))
FORCEINLINE auto MaxElement(RangeType &Range, ComparatorType Comp) -> decltype(AlgoImpl::MaxElementBy(Range, FIdentityFunctor(), MoveTemp(Comp)))
FORCEINLINE auto MaxElementBy(RangeType &Range, ProjectionType Proj) -> decltype(AlgoImpl::MaxElementBy(Range, MoveTemp(Proj), TLess<>()))
FORCEINLINE auto MaxElement(RangeType &Range) -> decltype(AlgoImpl::MaxElementBy(Range, FIdentityFunctor(), TLess<>()))
FORCEINLINE auto MaxElementBy(RangeType &Range, ProjectionType Proj, ComparatorType Comp) -> decltype(AlgoImpl::MaxElementBy(Range, MoveTemp(Proj), MoveTemp(Comp)))
TRangePointerType< RangeType >::Type MaxElementBy(RangeType &Range, ProjectionType Proj, PredicateType Pred)