7#include "Containers/Array.h"
19template<
typename T,
typename AllocatorT = FDefaultAllocator>
31 bool IsEmpty()
const {
return Head == Tail; }
109 bDestructElements = (std::is_trivially_destructible_v<T> ? 0U : 1U),
112#if WITH_DEV_AUTOMATION_TESTS
130template<
typename T,
typename AllocatorT>
137 checkSlow((InitialCapacity & (InitialCapacity - 1)) == 0);
138 if (InitialCapacity > 0)
140 SetCapacity(InitialCapacity);
144template<
typename T,
typename AllocatorT>
148 Storage.SetNumUnsafeInternal(0);
151template<
typename T,
typename AllocatorT>
166template<
typename T,
typename AllocatorT>
183template<
typename T,
typename AllocatorT>
195 if (bConstructElements)
203template<
typename T,
typename AllocatorT>
206 return Enqueue_GetRef();
209template<
typename T,
typename AllocatorT>
219template<
typename T,
typename AllocatorT>
228template<
typename T,
typename AllocatorT>
231 if (bDestructElements)
241template<
typename T,
typename AllocatorT>
244 if (bDestructElements)
251 T* Data = Storage.GetData();
264 Tail += (IndexT)
Count;
267template<
typename T,
typename AllocatorT>
270 using SizeType =
typename StorageT::SizeType;
279 if (Storage.Num() > 0)
288 const ElementT* SrcData = Storage.GetData();
310 Head =
static_cast<IndexT
>(
SrcSize);
315 Storage.AddUninitialized(
static_cast<SizeType
>(
NewCapacity));
319template<
typename T,
typename AllocatorT>
328 SetCapacity(
Count());
332template<
typename T,
typename AllocatorT>
340template<
typename T,
typename AllocatorT>
346 IndexMask = IndexT(-1);
349 Storage.SetNumUnsafeInternal(0);
353#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
FORCEINLINE constexpr void DestructItem(ElementType *Element)
Definition MemoryOps.h:56
FORCEINLINE constexpr void DestructItems(ElementType *Element, SizeType Count)
Definition MemoryOps.h:81
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Offset
Definition VulkanMemory.cpp:4033
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
Definition ResizableCircularQueue.h:21
const ElementT & PeekAtOffset(SIZE_T Offset=0) const
Definition ResizableCircularQueue.h:76
const ElementT & Peek() const
Definition ResizableCircularQueue.h:82
~TResizableCircularQueue()
Definition ResizableCircularQueue.h:145
void Reset()
Definition ResizableCircularQueue.h:333
T ElementT
Definition ResizableCircularQueue.h:23
bool IsEmpty() const
Definition ResizableCircularQueue.h:31
ElementT & Poke()
Definition ResizableCircularQueue.h:85
ElementT & PokeAtOffset(SIZE_T Offset=0)
Definition ResizableCircularQueue.h:79
TResizableCircularQueue()
Definition ResizableCircularQueue.h:27
void PopNoCheck(SIZE_T Count)
Definition ResizableCircularQueue.h:242
SIZE_T AllocatedCapacity() const
Definition ResizableCircularQueue.h:37
const ElementT & PeekNoCheck() const
Definition ResizableCircularQueue.h:94
void Pop(SIZE_T Count)
Definition ResizableCircularQueue.h:211
ElementT & PokeAtOffsetNoCheck(SIZE_T Offset=0)
Definition ResizableCircularQueue.h:91
void Empty()
Definition ResizableCircularQueue.h:341
SIZE_T Count() const
Definition ResizableCircularQueue.h:34
ElementT & Enqueue_GetRef()
Definition ResizableCircularQueue.h:184
ElementT & EnqueueDefaulted_GetRef()
Definition ResizableCircularQueue.h:167
const ElementT & PeekAtOffsetNoCheck(SIZE_T Offset=0) const
Definition ResizableCircularQueue.h:88
TResizableCircularQueue(SIZE_T InitialCapacity)
Definition ResizableCircularQueue.h:131
void Enqueue(const ElementT &SrcData)
Definition ResizableCircularQueue.h:152
ElementT & Enqueue()
Definition ResizableCircularQueue.h:204
void Trim()
Definition ResizableCircularQueue.h:320
void PopNoCheck()
Definition ResizableCircularQueue.h:229
void Pop()
Definition ResizableCircularQueue.h:220
Definition IsPODType.h:12
Definition NumericLimits.h:41