MCRO
C++23 utilities for Unreal Engine.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Range.h File Reference

Bring modern declarative range operations like views and actions to the Unreal C++ arsenal. This header is responsible for bridging compatibility between Unreal containers and range-v3/std::ranges. More...

#include "CoreMinimal.h"
#include "Containers/BasicArray.h"
#include "Containers/Deque.h"
#include "Containers/LruCache.h"
#include "Containers/MRUArray.h"
#include "Containers/PagedArray.h"
#include "Containers/RingBuffer.h"
#include "Mcro/Range/Iterators.h"

Go to the source code of this file.

Data Structures

struct  FMapPairsAccessTag
 
class  TMapBase< FMapPairsAccessTag, FMapPairsAccessTag, FMapPairsAccessTag, FMapPairsAccessTag >
 

Typedefs

template<Mcro::Concepts::CRangeMember Container, Mcro::Range::FExtendedIteratorPolicy Policy = {}>
using TIteratorExtension = Mcro::Range::TExtendedIterator<decltype(DeclVal<Container>().begin()), Policy>
 Bring modern declarative range operations like views and actions to the Unreal C++ arsenal.
 
template<typename T >
using TExtendedIndirectArrayIterator = Mcro::Range::TExtendedIterator<T, Mcro::Range::FExtendedIteratorPolicy{.DereferencePointerToPointer = true}>
 
using FMapPairsAccess = TMapBase<FMapPairsAccessTag, FMapPairsAccessTag, FMapPairsAccessTag, FMapPairsAccessTag>
 

Functions

template<typename T , typename A >
auto begin (TArray< T, A > &r) -> T *
 
template<typename T , typename A >
auto begin (TArray< T, A > const &r) -> const T *
 
template<typename T , typename A >
auto end (TArray< T, A > &r) -> T *
 
template<typename T , typename A >
auto end (TArray< T, A > const &r) -> const T *
 
template<typename T , typename A >
size_t size (TArray< T, A > const &r)
 
template<typename T , typename A >
auto begin (TArrayView< T, A > &r) -> T *
 
template<typename T , typename A >
auto begin (TArrayView< T, A > const &r) -> const T *
 
template<typename T , typename A >
auto end (TArrayView< T, A > &r) -> T *
 
template<typename T , typename A >
auto end (TArrayView< T, A > const &r) -> const T *
 
template<typename T , typename A >
size_t size (TArrayView< T, A > const &r)
 
template<typename T , uint32 N, uint32 A>
auto begin (TStaticArray< T, N, A > &r) -> T *
 
template<typename T , uint32 N, uint32 A>
auto begin (TStaticArray< T, N, A > const &r) -> const T *
 
template<typename T , uint32 N, uint32 A>
auto end (TStaticArray< T, N, A > &r) -> T *
 
template<typename T , uint32 N, uint32 A>
auto end (TStaticArray< T, N, A > const &r) -> const T *
 
template<typename T , uint32 N, uint32 A>
size_t size (TStaticArray< T, N, A > const &r)
 
template<typename T , typename A >
auto begin (TIndirectArray< T, A > &r) -> TExtendedIndirectArrayIterator< T ** >
 
template<typename T , typename A >
auto begin (TIndirectArray< T, A > const &r) -> TExtendedIndirectArrayIterator< const T ** >
 
template<typename T , typename A >
auto end (TIndirectArray< T, A > &r) -> TExtendedIndirectArrayIterator< T ** >
 
template<typename T , typename A >
auto end (TIndirectArray< T, A > const &r) -> TExtendedIndirectArrayIterator< const T ** >
 
template<typename T , typename A >
size_t size (TIndirectArray< T, A > const &r)
 
template<typename T , typename K , typename A >
auto begin (TSet< T, K, A > &r) -> TIteratorExtension< TSet< T, K, A > >
 
template<typename T , typename K , typename A >
auto begin (TSet< T, K, A > const &r) -> TIteratorExtension< TSet< T, K, A > >
 
template<typename T , typename K , typename A >
auto end (TSet< T, K, A > &r) -> TIteratorExtension< TSet< T, K, A > >
 
template<typename T , typename K , typename A >
auto end (TSet< T, K, A > const &r) -> TIteratorExtension< TSet< T, K, A > >
 
template<typename T , typename K , typename A >
size_t size (TSet< T, K, A > const &r)
 
template<typename K , typename V , typename A , typename F >
auto begin (TMap< K, V, A, F > &map)
 
template<typename K , typename V , typename A , typename F >
auto begin (TMap< K, V, A, F > const &map)
 
template<typename K , typename V , typename A , typename F >
auto end (TMap< K, V, A, F > &map)
 
template<typename K , typename V , typename A , typename F >
auto end (TMap< K, V, A, F > const &map)
 
template<typename K , typename V , typename A , typename F >
size_t size (TMap< K, V, A, F > const &map)
 
template<typename K , typename V , typename A , typename F >
auto begin (TMultiMap< K, V, A, F > &map)
 
template<typename K , typename V , typename A , typename F >
auto begin (TMultiMap< K, V, A, F > const &map)
 
template<typename K , typename V , typename A , typename F >
auto end (TMultiMap< K, V, A, F > &map)
 
template<typename K , typename V , typename A , typename F >
auto end (TMultiMap< K, V, A, F > const &map)
 
template<typename K , typename V , typename A , typename F >
size_t size (TMultiMap< K, V, A, F > const &map)
 
template<typename CharType >
auto begin (TStringView< CharType > const &string) -> const CharType *
 
template<typename CharType >
auto end (TStringView< CharType > const &string) -> const CharType *
 
template<typename CharType >
size_t size (TStringView< CharType > const &string)
 
FORCEINLINE auto begin (FString &string) -> const TCHAR *
 
FORCEINLINE auto begin (FString const &string) -> const TCHAR *
 
FORCEINLINE auto end (FString &string) -> const TCHAR *
 
FORCEINLINE auto end (FString const &string) -> const TCHAR *
 
FORCEINLINE auto begin (FString &&string) -> Mcro::Range::FTempStringIterator
 
FORCEINLINE auto end (FString &&string) -> Mcro::Range::FTempStringIterator
 
FORCEINLINE size_t size (FString const &string)
 
template<typename T >
auto begin (TBasicArray< T > &r) -> T *
 
template<typename T >
auto begin (TBasicArray< T > const &r) -> const T *
 
template<typename T >
auto end (TBasicArray< T > &r) -> T *
 
template<typename T >
auto end (TBasicArray< T > const &r) -> const T *
 
template<typename T >
size_t size (TBasicArray< T > const &r)
 
template<typename A >
auto begin (TBitArray< A > &r) -> TIteratorExtension< TBitArray< A > >
 
template<typename A >
auto begin (TBitArray< A > const &r) -> TIteratorExtension< TBitArray< A > >
 
template<typename A >
auto end (TBitArray< A > &r) -> TIteratorExtension< TBitArray< A > >
 
template<typename A >
auto end (TBitArray< A > const &r) -> TIteratorExtension< TBitArray< A > >
 
template<typename A >
size_t size (TBitArray< A > const &r)
 
template<typename T , uint32 C, typename A >
auto begin (TChunkedArray< T, C, A > &r) -> TIteratorExtension< TChunkedArray< T, C, A > >
 
template<typename T , uint32 C, typename A >
auto begin (TChunkedArray< T, C, A > const &r) -> TIteratorExtension< TChunkedArray< T, C, A > >
 
template<typename T , uint32 C, typename A >
auto end (TChunkedArray< T, C, A > &r) -> TIteratorExtension< TChunkedArray< T, C, A > >
 
template<typename T , uint32 C, typename A >
auto end (TChunkedArray< T, C, A > const &r) -> TIteratorExtension< TChunkedArray< T, C, A > >
 
template<typename T , uint32 C, typename A >
size_t size (TChunkedArray< T, C, A > const &r)
 
template<typename T , typename A >
auto begin (TDeque< T, A > &r) -> TIteratorExtension< TDeque< T, A > >
 
template<typename T , typename A >
auto begin (TDeque< T, A > const &r) -> TIteratorExtension< TDeque< T, A > >
 
template<typename T , typename A >
auto end (TDeque< T, A > &r) -> TIteratorExtension< TDeque< T, A > >
 
template<typename T , typename A >
auto end (TDeque< T, A > const &r) -> TIteratorExtension< TDeque< T, A > >
 
template<typename T , typename A >
size_t size (TDeque< T, A > const &r)
 
template<typename T , uint32 A>
auto begin (TResourceArray< T, A > &r) -> T *
 
template<typename T , uint32 A>
auto begin (TResourceArray< T, A > const &r) -> const T *
 
template<typename T , uint32 A>
auto end (TResourceArray< T, A > &r) -> T *
 
template<typename T , uint32 A>
auto end (TResourceArray< T, A > const &r) -> const T *
 
template<typename T , uint32 A>
size_t size (TResourceArray< T, A > const &r)
 
template<typename K , typename V , typename C >
auto begin (TLruCache< K, V, C > &r) -> TIteratorExtension< TLruCache< K, V, C > >
 
template<typename K , typename V , typename C >
auto begin (TLruCache< K, V, C > const &r) -> TIteratorExtension< TLruCache< K, V, C > >
 
template<typename K , typename V , typename C >
auto end (TLruCache< K, V, C > &r) -> TIteratorExtension< TLruCache< K, V, C > >
 
template<typename K , typename V , typename C >
auto end (TLruCache< K, V, C > const &r) -> TIteratorExtension< TLruCache< K, V, C > >
 
template<typename K , typename V , typename C >
size_t size (TLruCache< K, V, C > const &r)
 
template<typename T , typename A >
auto begin (TMRUArray< T, A > &r) -> T *
 
template<typename T , typename A >
auto begin (TMRUArray< T, A > const &r) -> const T *
 
template<typename T , typename A >
auto end (TMRUArray< T, A > &r) -> T *
 
template<typename T , typename A >
auto end (TMRUArray< T, A > const &r) -> const T *
 
template<typename T , typename A >
size_t size (TMRUArray< T, A > const &r)
 
template<typename T , int32 P, typename A >
auto begin (TPagedArray< T, P, A > &r) -> TIteratorExtension< TPagedArray< T, P, A > >
 
template<typename T , int32 P, typename A >
auto begin (TPagedArray< T, P, A > const &r) -> TIteratorExtension< TPagedArray< T, P, A > >
 
template<typename T , int32 P, typename A >
auto end (TPagedArray< T, P, A > &r) -> TIteratorExtension< TPagedArray< T, P, A > >
 
template<typename T , int32 P, typename A >
auto end (TPagedArray< T, P, A > const &r) -> TIteratorExtension< TPagedArray< T, P, A > >
 
template<typename T , int32 P, typename A >
size_t size (TPagedArray< T, P, A > const &r)
 
template<typename T , typename A >
auto begin (TRingBuffer< T, A > &r) -> TIteratorExtension< TRingBuffer< T, A > >
 
template<typename T , typename A >
auto begin (TRingBuffer< T, A > const &r) -> TIteratorExtension< TRingBuffer< T, A > >
 
template<typename T , typename A >
auto end (TRingBuffer< T, A > &r) -> TIteratorExtension< TRingBuffer< T, A > >
 
template<typename T , typename A >
auto end (TRingBuffer< T, A > const &r) -> TIteratorExtension< TRingBuffer< T, A > >
 
template<typename T , typename A >
size_t size (TRingBuffer< T, A > const &r)
 
template<typename K , typename V , typename A , typename S >
auto begin (TSortedMap< K, V, A, S > &r) -> TIteratorExtension< TSortedMap< K, V, A, S > >
 
template<typename K , typename V , typename A , typename S >
auto begin (TSortedMap< K, V, A, S > const &r) -> TIteratorExtension< TSortedMap< K, V, A, S > >
 
template<typename K , typename V , typename A , typename S >
auto end (TSortedMap< K, V, A, S > &r) -> TIteratorExtension< TSortedMap< K, V, A, S > >
 
template<typename K , typename V , typename A , typename S >
auto end (TSortedMap< K, V, A, S > const &r) -> TIteratorExtension< TSortedMap< K, V, A, S > >
 
template<typename K , typename V , typename A , typename S >
size_t size (TSortedMap< K, V, A, S > const &r)
 
template<typename T , typename A >
auto begin (TSparseArray< T, A > &r) -> TIteratorExtension< TSparseArray< T, A > >
 
template<typename T , typename A >
auto begin (TSparseArray< T, A > const &r) -> TIteratorExtension< TSparseArray< T, A > >
 
template<typename T , typename A >
auto end (TSparseArray< T, A > &r) -> TIteratorExtension< TSparseArray< T, A > >
 
template<typename T , typename A >
auto end (TSparseArray< T, A > const &r) -> TIteratorExtension< TSparseArray< T, A > >
 
template<typename T , typename A >
size_t size (TSparseArray< T, A > const &r)
 

Detailed Description

Bring modern declarative range operations like views and actions to the Unreal C++ arsenal. This header is responsible for bridging compatibility between Unreal containers and range-v3/std::ranges.

Author
David Mórász
Date
2025

The official documentation is quite barebones and doesn't go to great lengths explaining how individual features in the range-v3 library behave exactly. For a more explanatory documentation I found this website https://lukasfro.github.io/range-v3-doc/chapter_01/01_introduction.html by PhD Lukas Fröhlich which lists views with examples and precise descriptions. Although, as the original documentation, that is also "incomplete".

Please consider the potentials and pitfals and the tips & tricks when using range-v3 in your program.

Remarks
Fully supported Unreal containers:
  • TArray
  • TMap
  • TMultiMap
  • TSet
  • FString (TCHAR array)
  • TStringView (given char-type)
  • TBasicArray
  • TBitArray
  • TChunkedArray
  • TMRUArray
  • TResourceArray
  • TSparseArray
  • TStaticArray
  • TIndirectArray
  • TRingBuffer
Unreal containers where some iterator features may have low-performance emulation (can be restricted with a preprocessor flag)
  • TDeque
  • TLruCache
  • TPagedArray
  • TSortedMap
Warning
Unsupported containers (they're not iterable or other various issues)
  • Most queue containers:
    • TQueue
    • TCircularQueue
    • TConsumeAllMpmcQueue
    • etc...
  • TCircularBuffer
  • TLinkedList
  • TDoubleLinkedList
  • TIntrusiveDoubleLinkedList
  • TDiscardableKeyValueCache
  • TStaticHashTable
  • FHashTable
  • TStaticBitArray
  • TStridedView (use ranges::views::stride)
  • TTripleBuffer
You may need to convert these to either a fully supported container, or write your own iterator for them. MCRO provides Mcro::Ranges::TExtendedIterator which can automatically make a simple bare-minimum iterator into a fully STL compliant one.

Definition in file Range.h.

Typedef Documentation

◆ FMapPairsAccess

◆ TExtendedIndirectArrayIterator

template<typename T >
using TExtendedIndirectArrayIterator = Mcro::Range::TExtendedIterator<T, Mcro::Range::FExtendedIteratorPolicy{.DereferencePointerToPointer = true}>

Definition at line 116 of file Range.h.

◆ TIteratorExtension

using TIteratorExtension = Mcro::Range::TExtendedIterator<decltype(DeclVal<Container>().begin()), Policy>

Bring modern declarative range operations like views and actions to the Unreal C++ arsenal.

Definition at line 91 of file Range.h.

Function Documentation

◆ begin() [1/40]

FORCEINLINE auto begin ( FString && string) -> Mcro::Range::FTempStringIterator

Definition at line 178 of file Range.h.

◆ begin() [2/40]

FORCEINLINE auto begin ( FString & string) -> const TCHAR*

Definition at line 174 of file Range.h.

◆ begin() [3/40]

FORCEINLINE auto begin ( FString const & string) -> const TCHAR*

Definition at line 175 of file Range.h.

◆ begin() [4/40]

template<typename T , typename A >
auto begin ( TArray< T, A > & r) -> T*

Definition at line 94 of file Range.h.

◆ begin() [5/40]

template<typename T , typename A >
auto begin ( TArray< T, A > const & r) -> const T*

Definition at line 95 of file Range.h.

◆ begin() [6/40]

template<typename T , typename A >
auto begin ( TArrayView< T, A > & r) -> T*

Definition at line 101 of file Range.h.

◆ begin() [7/40]

template<typename T , typename A >
auto begin ( TArrayView< T, A > const & r) -> const T*

Definition at line 102 of file Range.h.

◆ begin() [8/40]

template<typename T >
auto begin ( TBasicArray< T > & r) -> T*

Definition at line 183 of file Range.h.

◆ begin() [9/40]

template<typename T >
auto begin ( TBasicArray< T > const & r) -> const T*

Definition at line 184 of file Range.h.

◆ begin() [10/40]

template<typename A >
auto begin ( TBitArray< A > & r) -> TIteratorExtension<TBitArray<A>>

Definition at line 190 of file Range.h.

◆ begin() [11/40]

template<typename A >
auto begin ( TBitArray< A > const & r) -> TIteratorExtension<TBitArray<A>>

Definition at line 191 of file Range.h.

◆ begin() [12/40]

template<typename T , uint32 C, typename A >
auto begin ( TChunkedArray< T, C, A > & r) -> TIteratorExtension<TChunkedArray<T, C, A>>

Definition at line 197 of file Range.h.

◆ begin() [13/40]

template<typename T , uint32 C, typename A >
auto begin ( TChunkedArray< T, C, A > const & r) -> TIteratorExtension<TChunkedArray<T, C, A>>

Definition at line 198 of file Range.h.

◆ begin() [14/40]

template<typename T , typename A >
auto begin ( TDeque< T, A > & r) -> TIteratorExtension<TDeque<T, A>>

Definition at line 204 of file Range.h.

◆ begin() [15/40]

template<typename T , typename A >
auto begin ( TDeque< T, A > const & r) -> TIteratorExtension<TDeque<T, A>>

Definition at line 205 of file Range.h.

◆ begin() [16/40]

template<typename T , typename A >
auto begin ( TIndirectArray< T, A > & r) -> TExtendedIndirectArrayIterator< T**>

Definition at line 118 of file Range.h.

◆ begin() [17/40]

template<typename T , typename A >
auto begin ( TIndirectArray< T, A > const & r) -> TExtendedIndirectArrayIterator<const T**>

Definition at line 119 of file Range.h.

◆ begin() [18/40]

template<typename K , typename V , typename C >
auto begin ( TLruCache< K, V, C > & r) -> TIteratorExtension<TLruCache<K, V, C>>

Definition at line 225 of file Range.h.

◆ begin() [19/40]

template<typename K , typename V , typename C >
auto begin ( TLruCache< K, V, C > const & r) -> TIteratorExtension<TLruCache<K, V, C>>

Definition at line 226 of file Range.h.

◆ begin() [20/40]

template<typename K , typename V , typename A , typename F >
auto begin ( TMap< K, V, A, F > & map)

Definition at line 157 of file Range.h.

◆ begin() [21/40]

template<typename K , typename V , typename A , typename F >
auto begin ( TMap< K, V, A, F > const & map)

Definition at line 158 of file Range.h.

◆ begin() [22/40]

template<typename T , typename A >
auto begin ( TMRUArray< T, A > & r) -> T*

Definition at line 232 of file Range.h.

◆ begin() [23/40]

template<typename T , typename A >
auto begin ( TMRUArray< T, A > const & r) -> const T*

Definition at line 233 of file Range.h.

◆ begin() [24/40]

template<typename K , typename V , typename A , typename F >
auto begin ( TMultiMap< K, V, A, F > & map)

Definition at line 163 of file Range.h.

◆ begin() [25/40]

template<typename K , typename V , typename A , typename F >
auto begin ( TMultiMap< K, V, A, F > const & map)

Definition at line 164 of file Range.h.

◆ begin() [26/40]

template<typename T , int32 P, typename A >
auto begin ( TPagedArray< T, P, A > & r) -> TIteratorExtension<TPagedArray<T, P, A>>

Definition at line 239 of file Range.h.

◆ begin() [27/40]

template<typename T , int32 P, typename A >
auto begin ( TPagedArray< T, P, A > const & r) -> TIteratorExtension<TPagedArray<T, P, A>>

Definition at line 240 of file Range.h.

◆ begin() [28/40]

template<typename T , uint32 A>
auto begin ( TResourceArray< T, A > & r) -> T*

Definition at line 211 of file Range.h.

◆ begin() [29/40]

template<typename T , uint32 A>
auto begin ( TResourceArray< T, A > const & r) -> const T*

Definition at line 212 of file Range.h.

◆ begin() [30/40]

template<typename T , typename A >
auto begin ( TRingBuffer< T, A > & r) -> TIteratorExtension<TRingBuffer<T, A>>

Definition at line 246 of file Range.h.

◆ begin() [31/40]

template<typename T , typename A >
auto begin ( TRingBuffer< T, A > const & r) -> TIteratorExtension<TRingBuffer<T, A>>

Definition at line 247 of file Range.h.

◆ begin() [32/40]

template<typename T , typename K , typename A >
auto begin ( TSet< T, K, A > & r) -> TIteratorExtension<TSet<T, K, A>>

Definition at line 125 of file Range.h.

◆ begin() [33/40]

template<typename T , typename K , typename A >
auto begin ( TSet< T, K, A > const & r) -> TIteratorExtension<TSet<T, K, A>>

Definition at line 126 of file Range.h.

◆ begin() [34/40]

template<typename K , typename V , typename A , typename S >
auto begin ( TSortedMap< K, V, A, S > & r) -> TIteratorExtension<TSortedMap<K, V, A, S>>

Definition at line 253 of file Range.h.

◆ begin() [35/40]

template<typename K , typename V , typename A , typename S >
auto begin ( TSortedMap< K, V, A, S > const & r) -> TIteratorExtension<TSortedMap<K, V, A, S>>

Definition at line 254 of file Range.h.

◆ begin() [36/40]

template<typename T , typename A >
auto begin ( TSparseArray< T, A > & r) -> TIteratorExtension<TSparseArray<T, A>>

Definition at line 260 of file Range.h.

◆ begin() [37/40]

template<typename T , typename A >
auto begin ( TSparseArray< T, A > const & r) -> TIteratorExtension<TSparseArray<T, A>>

Definition at line 261 of file Range.h.

◆ begin() [38/40]

template<typename T , uint32 N, uint32 A>
auto begin ( TStaticArray< T, N, A > & r) -> T*

Definition at line 108 of file Range.h.

◆ begin() [39/40]

template<typename T , uint32 N, uint32 A>
auto begin ( TStaticArray< T, N, A > const & r) -> const T*

Definition at line 109 of file Range.h.

◆ begin() [40/40]

template<typename CharType >
auto begin ( TStringView< CharType > const & string) -> const CharType*

Definition at line 170 of file Range.h.

◆ end() [1/40]

FORCEINLINE auto end ( FString && string) -> Mcro::Range::FTempStringIterator

Definition at line 179 of file Range.h.

◆ end() [2/40]

FORCEINLINE auto end ( FString & string) -> const TCHAR*

Definition at line 176 of file Range.h.

◆ end() [3/40]

FORCEINLINE auto end ( FString const & string) -> const TCHAR*

Definition at line 177 of file Range.h.

◆ end() [4/40]

template<typename T , typename A >
auto end ( TArray< T, A > & r) -> T*

Definition at line 96 of file Range.h.

◆ end() [5/40]

template<typename T , typename A >
auto end ( TArray< T, A > const & r) -> const T*

Definition at line 97 of file Range.h.

◆ end() [6/40]

template<typename T , typename A >
auto end ( TArrayView< T, A > & r) -> T*

Definition at line 103 of file Range.h.

◆ end() [7/40]

template<typename T , typename A >
auto end ( TArrayView< T, A > const & r) -> const T*

Definition at line 104 of file Range.h.

◆ end() [8/40]

template<typename T >
auto end ( TBasicArray< T > & r) -> T*

Definition at line 185 of file Range.h.

◆ end() [9/40]

template<typename T >
auto end ( TBasicArray< T > const & r) -> const T*

Definition at line 186 of file Range.h.

◆ end() [10/40]

template<typename A >
auto end ( TBitArray< A > & r) -> TIteratorExtension<TBitArray<A>>

Definition at line 192 of file Range.h.

◆ end() [11/40]

template<typename A >
auto end ( TBitArray< A > const & r) -> TIteratorExtension<TBitArray<A>>

Definition at line 193 of file Range.h.

◆ end() [12/40]

template<typename T , uint32 C, typename A >
auto end ( TChunkedArray< T, C, A > & r) -> TIteratorExtension<TChunkedArray<T, C, A>>

Definition at line 199 of file Range.h.

◆ end() [13/40]

template<typename T , uint32 C, typename A >
auto end ( TChunkedArray< T, C, A > const & r) -> TIteratorExtension<TChunkedArray<T, C, A>>

Definition at line 200 of file Range.h.

◆ end() [14/40]

template<typename T , typename A >
auto end ( TDeque< T, A > & r) -> TIteratorExtension<TDeque<T, A>>

Definition at line 206 of file Range.h.

◆ end() [15/40]

template<typename T , typename A >
auto end ( TDeque< T, A > const & r) -> TIteratorExtension<TDeque<T, A>>

Definition at line 207 of file Range.h.

◆ end() [16/40]

template<typename T , typename A >
auto end ( TIndirectArray< T, A > & r) -> TExtendedIndirectArrayIterator< T**>

Definition at line 120 of file Range.h.

◆ end() [17/40]

template<typename T , typename A >
auto end ( TIndirectArray< T, A > const & r) -> TExtendedIndirectArrayIterator<const T**>

Definition at line 121 of file Range.h.

◆ end() [18/40]

template<typename K , typename V , typename C >
auto end ( TLruCache< K, V, C > & r) -> TIteratorExtension<TLruCache<K, V, C>>

Definition at line 227 of file Range.h.

◆ end() [19/40]

template<typename K , typename V , typename C >
auto end ( TLruCache< K, V, C > const & r) -> TIteratorExtension<TLruCache<K, V, C>>

Definition at line 228 of file Range.h.

◆ end() [20/40]

template<typename K , typename V , typename A , typename F >
auto end ( TMap< K, V, A, F > & map)

Definition at line 159 of file Range.h.

◆ end() [21/40]

template<typename K , typename V , typename A , typename F >
auto end ( TMap< K, V, A, F > const & map)

Definition at line 160 of file Range.h.

◆ end() [22/40]

template<typename T , typename A >
auto end ( TMRUArray< T, A > & r) -> T*

Definition at line 234 of file Range.h.

◆ end() [23/40]

template<typename T , typename A >
auto end ( TMRUArray< T, A > const & r) -> const T*

Definition at line 235 of file Range.h.

◆ end() [24/40]

template<typename K , typename V , typename A , typename F >
auto end ( TMultiMap< K, V, A, F > & map)

Definition at line 165 of file Range.h.

◆ end() [25/40]

template<typename K , typename V , typename A , typename F >
auto end ( TMultiMap< K, V, A, F > const & map)

Definition at line 166 of file Range.h.

◆ end() [26/40]

template<typename T , int32 P, typename A >
auto end ( TPagedArray< T, P, A > & r) -> TIteratorExtension<TPagedArray<T, P, A>>

Definition at line 241 of file Range.h.

◆ end() [27/40]

template<typename T , int32 P, typename A >
auto end ( TPagedArray< T, P, A > const & r) -> TIteratorExtension<TPagedArray<T, P, A>>

Definition at line 242 of file Range.h.

◆ end() [28/40]

template<typename T , uint32 A>
auto end ( TResourceArray< T, A > & r) -> T*

Definition at line 213 of file Range.h.

◆ end() [29/40]

template<typename T , uint32 A>
auto end ( TResourceArray< T, A > const & r) -> const T*

Definition at line 214 of file Range.h.

◆ end() [30/40]

template<typename T , typename A >
auto end ( TRingBuffer< T, A > & r) -> TIteratorExtension<TRingBuffer<T, A>>

Definition at line 248 of file Range.h.

◆ end() [31/40]

template<typename T , typename A >
auto end ( TRingBuffer< T, A > const & r) -> TIteratorExtension<TRingBuffer<T, A>>

Definition at line 249 of file Range.h.

◆ end() [32/40]

template<typename T , typename K , typename A >
auto end ( TSet< T, K, A > & r) -> TIteratorExtension<TSet<T, K, A>>

Definition at line 127 of file Range.h.

◆ end() [33/40]

template<typename T , typename K , typename A >
auto end ( TSet< T, K, A > const & r) -> TIteratorExtension<TSet<T, K, A>>

Definition at line 128 of file Range.h.

◆ end() [34/40]

template<typename K , typename V , typename A , typename S >
auto end ( TSortedMap< K, V, A, S > & r) -> TIteratorExtension<TSortedMap<K, V, A, S>>

Definition at line 255 of file Range.h.

◆ end() [35/40]

template<typename K , typename V , typename A , typename S >
auto end ( TSortedMap< K, V, A, S > const & r) -> TIteratorExtension<TSortedMap<K, V, A, S>>

Definition at line 256 of file Range.h.

◆ end() [36/40]

template<typename T , typename A >
auto end ( TSparseArray< T, A > & r) -> TIteratorExtension<TSparseArray<T, A>>

Definition at line 262 of file Range.h.

◆ end() [37/40]

template<typename T , typename A >
auto end ( TSparseArray< T, A > const & r) -> TIteratorExtension<TSparseArray<T, A>>

Definition at line 263 of file Range.h.

◆ end() [38/40]

template<typename T , uint32 N, uint32 A>
auto end ( TStaticArray< T, N, A > & r) -> T*

Definition at line 110 of file Range.h.

◆ end() [39/40]

template<typename T , uint32 N, uint32 A>
auto end ( TStaticArray< T, N, A > const & r) -> const T*

Definition at line 111 of file Range.h.

◆ end() [40/40]

template<typename CharType >
auto end ( TStringView< CharType > const & string) -> const CharType*

Definition at line 171 of file Range.h.

◆ size() [1/20]

FORCEINLINE size_t size ( FString const & string)

Definition at line 180 of file Range.h.

◆ size() [2/20]

template<typename T , typename A >
size_t size ( TArray< T, A > const & r)

Definition at line 98 of file Range.h.

◆ size() [3/20]

template<typename T , typename A >
size_t size ( TArrayView< T, A > const & r)

Definition at line 105 of file Range.h.

◆ size() [4/20]

template<typename T >
size_t size ( TBasicArray< T > const & r)

Definition at line 187 of file Range.h.

◆ size() [5/20]

template<typename A >
size_t size ( TBitArray< A > const & r)

Definition at line 194 of file Range.h.

◆ size() [6/20]

template<typename T , uint32 C, typename A >
size_t size ( TChunkedArray< T, C, A > const & r)

Definition at line 201 of file Range.h.

◆ size() [7/20]

template<typename T , typename A >
size_t size ( TDeque< T, A > const & r)

Definition at line 208 of file Range.h.

◆ size() [8/20]

template<typename T , typename A >
size_t size ( TIndirectArray< T, A > const & r)

Definition at line 122 of file Range.h.

◆ size() [9/20]

template<typename K , typename V , typename C >
size_t size ( TLruCache< K, V, C > const & r)

Definition at line 229 of file Range.h.

◆ size() [10/20]

template<typename K , typename V , typename A , typename F >
size_t size ( TMap< K, V, A, F > const & map)

Definition at line 161 of file Range.h.

◆ size() [11/20]

template<typename T , typename A >
size_t size ( TMRUArray< T, A > const & r)

Definition at line 236 of file Range.h.

◆ size() [12/20]

template<typename K , typename V , typename A , typename F >
size_t size ( TMultiMap< K, V, A, F > const & map)

Definition at line 167 of file Range.h.

◆ size() [13/20]

template<typename T , int32 P, typename A >
size_t size ( TPagedArray< T, P, A > const & r)

Definition at line 243 of file Range.h.

◆ size() [14/20]

template<typename T , uint32 A>
size_t size ( TResourceArray< T, A > const & r)

Definition at line 215 of file Range.h.

◆ size() [15/20]

template<typename T , typename A >
size_t size ( TRingBuffer< T, A > const & r)

Definition at line 250 of file Range.h.

◆ size() [16/20]

template<typename T , typename K , typename A >
size_t size ( TSet< T, K, A > const & r)

Definition at line 129 of file Range.h.

◆ size() [17/20]

template<typename K , typename V , typename A , typename S >
size_t size ( TSortedMap< K, V, A, S > const & r)

Definition at line 257 of file Range.h.

◆ size() [18/20]

template<typename T , typename A >
size_t size ( TSparseArray< T, A > const & r)

Definition at line 264 of file Range.h.

◆ size() [19/20]

template<typename T , uint32 N, uint32 A>
size_t size ( TStaticArray< T, N, A > const & r)

Definition at line 112 of file Range.h.

◆ size() [20/20]

template<typename CharType >
size_t size ( TStringView< CharType > const & string)

Definition at line 172 of file Range.h.