UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
uLang::TQueueG< InElementType, Mode > Class Template Reference

#include <Queue.h>

Public Member Functions

 TQueueG ()
 
 ~TQueueG ()
 
bool Enqueue (const InElementType &InElement)
 
bool Enqueue (const InElementType &&InElement)
 
bool Dequeue (InElementType &OutElement)
 
bool Pop ()
 
void Empty ()
 
bool IsEmpty ()
 

Protected Member Functions

 TQueueG (const TQueueG &)=delete
 
TQueueGoperator= (const TQueueG &)=delete
 

Detailed Description

template<typename InElementType, EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
class uLang::TQueueG< InElementType, Mode >

Simple templated queue following Unreal's TQueue implementation using a lock-free linked list. We're doing this instead of using a simple array/etc. since it matches Unreal's implementation 1:1 apart from usage of the standard library for atomics.

Constructor & Destructor Documentation

◆ TQueueG() [1/2]

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
uLang::TQueueG< InElementType, Mode >::TQueueG ( )
inline

◆ ~TQueueG()

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
uLang::TQueueG< InElementType, Mode >::~TQueueG ( )
inline

◆ TQueueG() [2/2]

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
uLang::TQueueG< InElementType, Mode >::TQueueG ( const TQueueG< InElementType, Mode > &  )
protecteddelete

Hidden copy constructor.

Member Function Documentation

◆ Dequeue()

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
bool uLang::TQueueG< InElementType, Mode >::Dequeue ( InElementType OutElement)
inline

Removes and returns the item from the tail of the queue.

Parameters
OutElementThe item from the tail of the queue.
Returns
true if a value was returned, false if the queue was empty.

◆ Empty()

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
void uLang::TQueueG< InElementType, Mode >::Empty ( )
inline

Empty the queue, discarding all items.

◆ Enqueue() [1/2]

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
bool uLang::TQueueG< InElementType, Mode >::Enqueue ( const InElementType &&  InElement)
inline

◆ Enqueue() [2/2]

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
bool uLang::TQueueG< InElementType, Mode >::Enqueue ( const InElementType InElement)
inline

Adds an item to the head of the queue.

Parameters
InElementThe item to add.
Returns
true if the item was added, false otherwise.

◆ IsEmpty()

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
bool uLang::TQueueG< InElementType, Mode >::IsEmpty ( )
inline

Checks whether the queue is empty.

Returns
true if the queue is empty, false otherwise.

◆ operator=()

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
TQueueG & uLang::TQueueG< InElementType, Mode >::operator= ( const TQueueG< InElementType, Mode > &  )
protecteddelete

Hidden assignment operator.

◆ Pop()

template<typename InElementType , EQueueMode Mode = EQueueMode::SingleProducerSingleConsumer>
bool uLang::TQueueG< InElementType, Mode >::Pop ( )
inline

Removes the item from the tail of the queue.

Returns
true if a value was removed, false if the queue was empty.

The documentation for this class was generated from the following file: