/Engine/Source/Runtime/AIModule/Public/IndexedHandle.h
Handle Manager meant forFIndexedHandleBaseandFCompactIndexedHandleBasederived classes, handles are given out from a freelist and are zero based and consecutive in nature, so ideal for being used as indices in to arrays. Using bOptimizeHandleReuse performance impact on releasing a handle. Because new handles will always use the smallest index, this will help greatly the compaction code(ShrinkHandles) and reduce the total number of handles. This is very useful when you need to iterate through every valid handles often.
template<typename TIndexedHandle, typename TIndexType, typename TSerialType, bool bOptimizeHandleReuse> struct FIndexedHandleManagerBase
TArray< TIndexT...
FreeHandleIndices
FHandleArray
Handles
Handles stored as a free list sparse array, Handle entries that are free will have a GetIndex() == INDEX_NONE
uint32
ManagerID