UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EnumerateRange.h File Reference
#include "Templates/UnrealTemplate.h"
#include <iterator>
#include <type_traits>

Go to the source code of this file.

Classes

struct  TEnumerateRef< ElementType, SizeType >
 
struct  TEnumerateRange< RangeType, SizeType >
 

Namespaces

namespace  UE
 
namespace  UE::Core
 
namespace  UE::Core::Private
 implementation
 

Typedefs

template<typename ElementType , typename SizeType = int32>
using TConstEnumerateRef = TEnumerateRef< const ElementType, SizeType >
 

Functions

template<typename RangeType >
auto EnumerateRange (RangeType &&Range) -> TEnumerateRange< RangeType, decltype(GetNum(Range))>
 
template<typename T , SIZE_T N>
TEnumerateRange< T(&)[N], int32EnumerateRange (T(&Range)[N])
 

Typedef Documentation

◆ TConstEnumerateRef

template<typename ElementType , typename SizeType = int32>
using TConstEnumerateRef = TEnumerateRef<const ElementType, SizeType>

Function Documentation

◆ EnumerateRange() [1/2]

template<typename RangeType >
auto EnumerateRange ( RangeType &&  Range) -> TEnumerateRange<RangeType, decltype(GetNum(Range))>

Allows iterating over a range while also keeping track of the current iteration index.

Usage:

for (TEnumerateRef<T> Elem : EnumerateRange(Container)) { Elem->MemberFunctionOfT(); FunctionTakingT(*Elem); int32 Index = Elem.GetIndex(); }

TEnumerateRef<const T> or TConstEnumerateRef<T> can be used for const iteration.

Iterating over larger containers like TArray64 will require an explicit SizeType parameter: TEnumerateRef<T, int64>

◆ EnumerateRange() [2/2]

template<typename T , SIZE_T N>
TEnumerateRange< T(&)[N], int32 > EnumerateRange ( T(&)  Range[N])