UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ContainerAllocationPolicies.h File Reference

Go to the source code of this file.

Classes

struct  FScriptContainerElement
 
struct  TAllocatorTraitsBase< AllocatorType >
 
struct  TAllocatorTraits< AllocatorType >
 
struct  TCanMoveBetweenAllocators< FromAllocatorType, ToAllocatorType >
 
class  FContainerAllocatorInterface
 
class  FContainerAllocatorInterface::ForElementType< ElementType >
 
class  TAlignedHeapAllocator< Alignment >
 
class  TAlignedHeapAllocator< Alignment >::ForAnyElementType
 
class  TAlignedHeapAllocator< Alignment >::ForElementType< ElementType >
 
struct  TAllocatorTraits< TAlignedHeapAllocator< Alignment > >
 
struct  TBitsToSizeType< IndexSize >
 
struct  TBitsToSizeType< 8 >
 
struct  TBitsToSizeType< 16 >
 
struct  TBitsToSizeType< 32 >
 
struct  TBitsToSizeType< 64 >
 
class  TSizedHeapAllocator< IndexSize, BaseMallocType >
 
class  TSizedHeapAllocator< IndexSize, BaseMallocType >::ForAnyElementType
 
class  TSizedHeapAllocator< IndexSize, BaseMallocType >::ForElementType< ElementType >
 
class  TSizedDefaultAllocator< IndexSize >
 
class  TSizedNonshrinkingAllocator< IndexSize >
 
struct  TAllocatorTraits< TSizedHeapAllocator< IndexSize > >
 
struct  TCanMoveBetweenAllocators< TSizedHeapAllocator< FromIndexSize >, TSizedHeapAllocator< ToIndexSize > >
 
class  TSizedInlineAllocator< NumInlineElements, IndexSize, SecondaryAllocator >
 
class  TSizedInlineAllocator< NumInlineElements, IndexSize, SecondaryAllocator >::ForElementType< ElementType >
 
struct  TAllocatorTraits< TSizedInlineAllocator< NumInlineElements, IndexSize, SecondaryAllocator > >
 
class  TNonRelocatableInlineAllocator< NumInlineElements >
 
class  TNonRelocatableInlineAllocator< NumInlineElements >::ForElementType< ElementType >
 
struct  TAllocatorTraits< TNonRelocatableInlineAllocator< NumInlineElements > >
 
class  TFixedAllocator< NumInlineElements >
 
class  TFixedAllocator< NumInlineElements >::ForElementType< ElementType >
 
class  TSparseArrayAllocator< InElementAllocator, InBitArrayAllocator >
 
class  TAlignedSparseArrayAllocator< Alignment, InElementAllocator, InBitArrayAllocator >
 
class  TInlineSparseArrayAllocator< NumInlineElements, SecondaryAllocator >
 
class  TFixedSparseArrayAllocator< NumInlineElements >
 
struct  TCompactSetAllocator< InElementAllocator >
 
struct  TCompactSetAllocator< InElementAllocator >::AllocatorAlignment< ElementType >
 
struct  TAllocatorTraits< TCompactSetAllocator< InElementAllocator > >
 
struct  TInlineCompactSetAllocator< NumInlineElements, SecondaryAllocator >
 
struct  TInlineCompactSetAllocator< NumInlineElements, SecondaryAllocator >::AllocatorAlignment< ElementType >
 
struct  TFixedCompactSetAllocator< NumInlineElements >
 
struct  TFixedCompactSetAllocator< NumInlineElements >::AllocatorAlignment< ElementType >
 
class  TSparseSetAllocator< InSparseArrayAllocator, InHashAllocator, AverageNumberOfElementsPerHashBucket, BaseNumberOfHashBuckets, MinNumberOfHashedElements >
 
struct  TAllocatorTraits< TSparseSetAllocator< InSparseArrayAllocator, InHashAllocator, AverageNumberOfElementsPerHashBucket, BaseNumberOfHashBuckets, MinNumberOfHashedElements > >
 
class  TInlineSparseSetAllocator< NumInlineElements, SecondaryAllocator, AverageNumberOfElementsPerHashBucket, MinNumberOfHashedElements >
 
class  TFixedSparseSetAllocator< NumInlineElements, AverageNumberOfElementsPerHashBucket, MinNumberOfHashedElements >
 
class  FDefaultSparseSetAllocator
 
class  FDefaultCompactSetAllocator
 
class  FDefaultBitArrayAllocator
 
class  FDefaultSparseArrayAllocator
 
class  FDefaultSetAllocator
 
class  TSetAllocator< InSparseArrayAllocator, InHashAllocator, N >
 
class  TInlineSetAllocator< N, S, NN >
 
class  TFixedSetAllocator< N >
 
struct  TAllocatorTraits< TSizedDefaultAllocator< IndexSize > >
 
struct  TAllocatorTraits< FDefaultAllocator >
 
struct  TAllocatorTraits< FDefaultSetAllocator >
 
struct  TAllocatorTraits< FDefaultSparseSetAllocator >
 
struct  TAllocatorTraits< FDefaultBitArrayAllocator >
 
struct  TAllocatorTraits< FDefaultSparseArrayAllocator >
 
struct  TAllocatorTraits< TSparseArrayAllocator< InElementAllocator, InBitArrayAllocator > >
 
struct  TCanMoveBetweenAllocators< TSizedDefaultAllocator< FromIndexSize >, TSizedDefaultAllocator< ToIndexSize > >
 

Namespaces

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

Concepts

concept  UE::Core::Private::CHasShrinkByDefault
 

Macros

#define UE_ENABLE_ARRAY_SLACK_TRACKING   (0 && !WITH_EDITOR)
 
#define CONTAINER_INITIAL_ALLOC_ZERO_SLACK   1
 
#define UE_CONTAINER_SLACK_GROWTH_FACTOR_NUMERATOR   3
 
#define UE_CONTAINER_SLACK_GROWTH_FACTOR_DENOMINATOR   8
 
#define NumBitsPerDWORD   ((int32)32)
 
#define NumBitsPerDWORDLogTwo   ((int32)5)
 
#define DEFAULT_NUMBER_OF_ELEMENTS_PER_HASH_BUCKET   2
 
#define DEFAULT_BASE_NUMBER_OF_HASH_BUCKETS   8
 
#define DEFAULT_MIN_NUMBER_OF_HASHED_ELEMENTS   4
 
#define UE_USE_COMPACT_SET_AS_DEFAULT   0
 

Typedefs

using FDefaultAllocator = TSizedDefaultAllocator< 32 >
 
using FHeapAllocator = TSizedHeapAllocator< 32 >
 
template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator>
using TInlineAllocator = TSizedInlineAllocator< NumInlineElements, 32, SecondaryAllocator >
 
template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator64>
using TInlineAllocator64 = TSizedInlineAllocator< NumInlineElements, 64, SecondaryAllocator >
 

Functions

template<typename SizeType >
UE_FORCEINLINE_HINT SizeType DefaultCalculateSlackShrink (SizeType NewMax, SizeType CurrentMax, SIZE_T BytesPerElement, bool bAllowQuantize, uint32 Alignment=DEFAULT_ALIGNMENT)
 
template<typename SizeType >
UE_FORCEINLINE_HINT SizeType DefaultCalculateSlackGrow (SizeType NewMax, SizeType CurrentMax, SIZE_T BytesPerElement, bool bAllowQuantize, uint32 Alignment=DEFAULT_ALIGNMENT)
 
template<typename SizeType >
UE_FORCEINLINE_HINT SizeType DefaultCalculateSlackReserve (SizeType NewMax, SIZE_T BytesPerElement, bool bAllowQuantize, uint32 Alignment=DEFAULT_ALIGNMENT)
 
template<bool bFallback, typename AllocatorType >
consteval bool UE::Core::Private::ShrinkByDefaultOr ()
 

Macro Definition Documentation

◆ CONTAINER_INITIAL_ALLOC_ZERO_SLACK

#define CONTAINER_INITIAL_ALLOC_ZERO_SLACK   1

◆ DEFAULT_BASE_NUMBER_OF_HASH_BUCKETS

#define DEFAULT_BASE_NUMBER_OF_HASH_BUCKETS   8

◆ DEFAULT_MIN_NUMBER_OF_HASHED_ELEMENTS

#define DEFAULT_MIN_NUMBER_OF_HASHED_ELEMENTS   4

◆ DEFAULT_NUMBER_OF_ELEMENTS_PER_HASH_BUCKET

#define DEFAULT_NUMBER_OF_ELEMENTS_PER_HASH_BUCKET   2

◆ NumBitsPerDWORD

#define NumBitsPerDWORD   ((int32)32)

◆ NumBitsPerDWORDLogTwo

#define NumBitsPerDWORDLogTwo   ((int32)5)

◆ UE_CONTAINER_SLACK_GROWTH_FACTOR_DENOMINATOR

#define UE_CONTAINER_SLACK_GROWTH_FACTOR_DENOMINATOR   8

◆ UE_CONTAINER_SLACK_GROWTH_FACTOR_NUMERATOR

#define UE_CONTAINER_SLACK_GROWTH_FACTOR_NUMERATOR   3

◆ UE_ENABLE_ARRAY_SLACK_TRACKING

#define UE_ENABLE_ARRAY_SLACK_TRACKING   (0 && !WITH_EDITOR)

◆ UE_USE_COMPACT_SET_AS_DEFAULT

#define UE_USE_COMPACT_SET_AS_DEFAULT   0

Typedef Documentation

◆ FDefaultAllocator

◆ FHeapAllocator

◆ TInlineAllocator

template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator>
using TInlineAllocator = TSizedInlineAllocator<NumInlineElements, 32, SecondaryAllocator>

◆ TInlineAllocator64

template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator64>
using TInlineAllocator64 = TSizedInlineAllocator<NumInlineElements, 64, SecondaryAllocator>

Function Documentation

◆ DefaultCalculateSlackGrow()

template<typename SizeType >
UE_FORCEINLINE_HINT SizeType DefaultCalculateSlackGrow ( SizeType  NewMax,
SizeType  CurrentMax,
SIZE_T  BytesPerElement,
bool  bAllowQuantize,
uint32  Alignment = DEFAULT_ALIGNMENT 
)

◆ DefaultCalculateSlackReserve()

template<typename SizeType >
UE_FORCEINLINE_HINT SizeType DefaultCalculateSlackReserve ( SizeType  NewMax,
SIZE_T  BytesPerElement,
bool  bAllowQuantize,
uint32  Alignment = DEFAULT_ALIGNMENT 
)

◆ DefaultCalculateSlackShrink()

template<typename SizeType >
UE_FORCEINLINE_HINT SizeType DefaultCalculateSlackShrink ( SizeType  NewMax,
SizeType  CurrentMax,
SIZE_T  BytesPerElement,
bool  bAllowQuantize,
uint32  Alignment = DEFAULT_ALIGNMENT 
)