14#include "CoreMinimal.h"
19#include "range/v3/all.hpp"
40 template <
typename L,
typename R>
43 template <
typename L,
typename R>
46 template <
typename L,
typename R>
51 else return !(l != r);
93 { i - 2 } -> CConvertibleToDecayed<T>;
108 template <
typename T>
120 template <
typename T>
123 std::random_access_iterator_tag,
126 std::bidirectional_iterator_tag,
129 std::forward_iterator_tag,
130 std::input_iterator_tag
141 template <
typename T, EIteratorStep Step>
150 template <
typename T, EIteratorDirection Direction>
154 template <
typename T, EIteratorDirection Direction, EIteratorStep Step>
158 template <CBasicForwardIterator T>
162 template <CRangeMember T>
165 template <
typename T>
172 template <
typename T>
175 template <
typename T>
178 template <
typename T>
181 template <
typename T>
188 template <
typename T>
This header exists because STL headers in Android doesn't define STL concepts (other than same_as whi...
Use this header and Start.h in tandem to include third-party library headers which may not tolerate U...
size_t size(TArray< T, A > const &r)
Use this header and End.h in tandem to include third-party library headers which may not tolerate Unr...
Basic minimal iterator which can only proceed forward or backward one element at a time.
The most basic minimal iterator which can only proceed forward one element at a time.
Constraint given iterator to its best directional capability.
Constraint given iterator to its best stepping capability.
Constraint given iterator to its best capabilies both in stepping and in direction.
An iterator type which can natively proceed forward in arbitrarily large steps.
An iterator type which can natively proceed forward in arbitrarily large steps and exposes a + operat...
An iterator type which can natively seek its associated content in arbitrarily large steps.
An iterator type which can natively seek its associated content in arbitrarily large steps and expose...
constexpr EIteratorStep TIteratorStep
Get the maximum steps the given iterator can be seeking with.
std::decay_t< decltype(*DeclVal< T >())> TIteratorElementType
return the iterator's associated content type when they're dereferenced.
constexpr EIteratorDirection TIteratorDirection
Get the direction given iterator is capable of.
bool IteratorEquals(L const &l, R const &r)
TIteratorElementType< decltype(DeclVal< T >().begin())> TRangeElementType
return a range's associated content type determined by dereferencing their iterator.
std::conditional_t< CRandomAccessIterator< T >, std::random_access_iterator_tag, std::conditional_t< CBasicBidirectionalIterator< T >, std::bidirectional_iterator_tag, std::conditional_t< CBasicForwardIterator< T >, std::forward_iterator_tag, std::input_iterator_tag > > > TIteratorCategory
Assume an STL iterator category from input iterator.