Templates

Choose your operating system:

Windows

macOS

Linux

Classes

Name

Description

Public struct

DefaultDeleter

Deletes an object via the standard delete operator

Public struct

FConstCastTag

Public struct

FEqualityHelper

Public class

FEuclidDivisionGCD

Euclidean algorithm using modulo policy.

Public struct

FFunctionRefStoragePolicy

Public struct

FFunctionStorage

Public struct

FIdentityFunctor

A functor which returns whatever is passed to it. Mainly used for generic composition.

Public struct

FMakeReferenceTo

Wrapper for a type that yields a reference to that type.

Public class

FNoncopyable

Utility template for a class that should not be copyable.

Public struct

FNoopStruct

Used to avoid cluttering code with ifdefs.

Public struct

FNullTag

Public struct

FRadixSortKeyFloat

Float cast to uint32 which maintains sorted order http://codercorner.com/RadixSortRevisited.htm

Public class

FRefCountBase

Base class implementing thread-safe reference counting.

Public class

FRefCountedObject

The base class of reference counted objects.

Public class

FSharedReferencer

FSharedReferencer is a wrapper around a pointer to a reference controller that is used by either a TSharedRef or a TSharedPtr to keep track of a referenced object's lifetime

Public struct

FStaticCastTag

Dummy structures used internally as template arguments for typecasts

Public class

FThreadSafeRefCountedObject

Like FRefCountedObject, but internal ref count is thread safe

Public struct

FVirtualDestructor

Public class

FWeakReferencer

Forward declarations.

Public struct

IDebugHelper

Helper classes to help debugger visualization.

Public struct

IFunction_OwnedObject

Common interface to a callable object owned by TFunction.

Public struct

IFunction_OwnedObject_Inline

Common interface to a callable object owned by TFunction.

Public struct

IFunction_OwnedObject_OnHeap

Common interface to a callable object owned by TFunction.

Public class

IRefCountedObject

A virtual interface for ref counted objects to implement.

Public class

std

Libc++ 8.0 and older incorrectly defined std::tuple_element as class, whereas the standard says it should be a struct.

Public struct

TAlignedBytes

Used to declare an untyped array of data with compile-time alignment.

Public struct

TAnd

Does a boolean AND of the Value static members of each type, but short-circuits if any Type::Value == false.

Public struct

TAndValue

Public struct

TArrayRange

Wraps a range into a container like interface to satisfy the GetData and GetNum global functions.

Public class

TAtomic

DEPRECATED! UE atomics are not maintained and potentially will be physically deprecated.

Public struct

TAtomicBase_Arithmetic

Arithmetic atomic implementation - used by both pointers and integral types in addition to getting and setting.

Public struct

TAtomicBase_Basic

Basic storage and implementation - only allows getting and setting via platform atomics.

Public struct

TAtomicBase_Integral

Integral atomic implementation - allows arithmetic and bitwise operations.

Public struct

TAtomicBase_Mutex

TODO : basic storage and getting and setting, but the element is protected by a mutex instead of using platform atomics.

Public struct

TAtomicBase_Pointer

Pointer atomic implementation - allows arithmetic with PTRINT.

Public struct

TAtomicBaseType

Public struct

TCallTraitsBase

Base class for call traits. Used to more easily refine portions when specializing

Public struct

TCallTraitsParamTypeHelper

Call traits helpers

Public struct

TCanBitwiseRelocate

Public class

TChooseClass

Chooses between two different classes based on a boolean.

Public struct

TContainerTraits

Public struct

TContainerTraitsBase

Traits for containers.

Public struct

TCopyQualifiersAndRefsFromTo

Copies the cv-qualifiers and references from one type to another, e.g.:

Public struct

TCopyQualifiersFromTo

Copies the cv-qualifiers from one type to another, e.g.:

Public struct

TCVTupleArity

Public struct

TCVTupleElement

Public struct

TCVTupleIndex

Public struct

TDebugHelper

Public struct

TDecayNonReference

Public struct

TDefaultDelete

Single-ownership smart pointer in the vein of std::unique_ptr.

Public struct

TDeleterHolder

A helper class that efficiently stores a custom deleter and is intended to be derived from.

Public struct

TDereferenceWrapper

Helper class for dereferencing pointer types in Sort function

Public struct

TDontCopy

Can be used as a wrapper over non-copyable objects (i.e. FCriticalSection) if you still want the class containing your object to keep its copyable property without compromising integrity of the object that doesn't support being copied.

Public class

TEnableIf

Includes a function in an overload set if the predicate is true.

Public struct

TEqualTo

Binary predicate class for performing equality comparisons.

Public struct

TForceInitAtBoot

Template for initializing a singleton at the boot.

Public struct

TFormatSpecifier

TFormatSpecifier, only applies to numeric types

Public struct

TFuncCanBindToFunctor

Public struct

TFunction_CopyableOwnedObject

Implementation of IFunction_OwnedObject for a given copyable T.

Public struct

TFunction_OwnedObject

Public struct

TFunction_UniqueOwnedObject

Implementation of IFunction_OwnedObject for a given non-copyable T.

Public struct

TFunctionRefBase

A class which defines an operator() which will own storage of a callable and invoke the TFunctionRefCaller::Call function on it.

Public struct

TFunctionRefCaller

A class which is used to instantiate the code needed to call a bound function.

Public struct

TFunctionStorage

Public struct

TFunctorReturnTypeIsCompatible

Public struct

TGetTupleHashHelper

Public struct

TGreater

Binary predicate class for sorting elements in reverse order.

Public struct

TGuardValue

Exception-safe guard around saving/restoring a value.

Public struct

TGuardValue_Bitfield_Cleanup

Public struct

TIdentity

Returns the same type passed to it.

Public struct

TImpl

We have this specialization for enums to avoid the need to have a full definition of the type.

Public struct

TImpl

Public struct

TIntegralConstant

Defines a value metafunction of the given Value.

Public class

TIntrusiveReferenceController

Public struct

TInvokeResult

Trait for the type of the result when invoking a callable with the given argument types.

Public struct

TInvokeResult_Impl

Public struct

TIsAbstract

Traits class which tests if a type is abstract.

Public struct

TIsArithmetic

Traits class which tests if a type is arithmetic.

Public struct

TIsArray

Traits class which tests if a type is a C++ array.

Public struct

TIsArrayOrRefOfType

Type trait which returns true if the type T is an array or a reference to an array of ArrType.

Public struct

TIsBitwiseConstructible

Tests if a type T is bitwise-constructible from a given argument type U.

Public struct

TIsBoundedArray

Traits class which tests if a type is a bounded C++ array.

Public struct

TIsClass

Determines if T is a struct/class type

Public struct

TIsConst

Traits class which tests if a type is const.

Public struct

TIsConstructible

Determines if T is constructible from a set of arguments.

Public struct

TIsDerivedFrom

Is type DerivedType inherited from BaseType.

Public struct

TIsEnum

Public struct

TIsEnumClass

Traits class which tests if a type is arithmetic.

Public struct

TIsEnumConvertibleToInt

Public struct

TIsFloatingPoint

Traits class which tests if a type is floating point.

Public struct

TIsFunction

TIsFunction

Tests is a type is a function.

Public struct

TIsFundamentalType

TIsFundamentalType

Public struct

TIsInitializerList

Traits class which tests if a type is an initializer list.

Public struct

TIsIntegral

Traits class which tests if a type is integral.

Public struct

TIsInvocable

Traits class which tests if an instance of CallableType can be invoked with a list of the arguments of the types provided.

Public struct

TIsInvocableImpl

Public struct

TIsLValueReferenceType

TIsLValueReferenceType

Public struct

TIsMemberPointer

Traits class which tests if a type is a pointer to member (data member or member function).

Public struct

TIsNullableBinding

Public struct

TIsPODType

Traits class which tests if a type is POD.

Public struct

TIsPointer

Traits class which tests if a type is a pointer.

Public struct

TIsPolymorphic

Traits class which tests if a type is polymorphic (virtual).

Public struct

TIsReferenceType

TIsReferenceType

Public struct

TIsRValueReferenceType

TIsRValueReferenceType

Public struct

TIsSame

TIsSame

Unreal implementation of std::is_same trait.

Public struct

TIsSigned

Traits class which tests if a type is a signed integral type.

Public struct

TIsSupportedSize

Public struct

TIsTFunction

Traits class which checks if T is a TFunction<> type.

Public struct

TIsTFunctionRef

Traits class which checks if T is a TFunctionRef<> type.

Public struct

TIsTrivial

Traits class which tests if a type is trivial.

Public struct

TIsTriviallyCopyAssignable

Traits class which tests if a type has a trivial copy assignment operator.

Public struct

TIsTriviallyCopyConstructible

Traits class which tests if a type has a trivial copy constructor.

Public struct

TIsTriviallyDestructible

Traits class which tests if a type has a trivial destructor.

Public struct

TIsTUniqueFunction

Traits class which checks if T is a TFunction<> type.

Public struct

TIsUECoreType

Traits class which tests if a type is part of the core types included in CoreMinimal.h.

Public struct

TIsUECoreVariant

Traits class which tests if a type is a core variant type (e.g. FVector, which supports FVector3f/FVector3d float/double variants. Can be used to determine if the provided type is a core variant type in general: e.g. TIsUECoreVariant::Value == false TIsUECoreVariant::Value == true and also to determine if it is a variant type of a particular component type: e.g TIsUECoreVariant::Value == false TIsUECoreVariant::Value == true

Public struct

TIsUnboundedArray

Traits class which tests if a type is an unbounded C++ array.

Public struct

TIsValidVariadicFunctionArg

Tests if a type is a valid argument to a variadic function, e.g. printf.

Public struct

TIsVoidPointer

Public struct

TIsWeakPointerType

TIsWeakPointerType

Public struct

TIsZeroConstructType

TIsZeroConstructType

Public class

TJugglingRotation

Array rotation using juggling technique.

Public struct

TKeyValuePair

Helper class to make it easy to use key/value pairs with a container.

Public class

TLazyEnableIf

This is a variant of the above that will determine the return type 'lazily', i.e. only if the function is enabled.

Public struct

TLess

Binary predicate class for sorting elements in order.

Public struct

TLessThanHelper

Public struct

TLosesQualifiersFromTo

Tests if qualifiers are lost between one type and another, e.g.:

Public struct

TMaxSizeof

Finds the maximum sizeof the supplied types

Public class

TMergeSort

Merge sort class.

Public struct

TModels

Utilities for concepts checks.

Public struct

TMoveSupportTraits

This traits class is intended to be used in pairs to allow efficient and correct move-aware overloads for generic types.

Public struct

TMoveSupportTraitsBase

Public struct

TNameOf

TNameOf

Public class

TNonNullPtr

TNonNullPtr is a non-nullable, non-owning, raw/naked/unsafe pointer.

Public struct

TNot

Does a boolean NOT of the Value static members of the type.

Public struct

TNthTypeFromParameterPack

Gets the Nth type in a template parameter pack. N must be less than sizeof...(Types)

Public struct

TOr

Does a boolean OR of the Value static members of each type, but short-circuits if any Type::Value == true.

Public struct

TOrValue

Public struct

TPimplHeapObjectImpl

Public struct

TPimplPtr

Forward declaration.

Public struct

TPointerIsConvertibleFromTo

Tests if a From* is convertible to a To*

Public class

TPointerIsConvertibleFromTo_TestBase

Public class

TPointerIsConvertibleFromTo_TestDerived

Public class

TPointerIsConvertibleFromTo_Unrelated

Public struct

TRadixSortKeyCastUint32

Public struct

TRawPtrProxy

Proxy structure for implicitly converting raw pointers to shared/weak pointers

Public struct

TRawPtrProxyWithDeleter

Proxy structure for implicitly converting raw pointers to shared/weak pointers

Public class

TRefCountPtr

A smart pointer to an object which implements AddRef/Release.

Public class

TReferenceControllerBase

Public class

TReferenceControllerWithDeleter

Public struct

TRemoveCV

TRemoveCV will remove any const/volatile qualifiers from a type.

Public struct

TRemoveExtent

Removes one dimension of extents from an array type.

Public struct

TRemovePointer

Removes one level of pointer from a type, e.g.:

Public struct

TRemoveReference

TRemoveReference will remove any references from a type.

Public struct

TRetainedRef

TRetainedRef

Public class

TReversePredicate

Helper class to reverse a predicate. Performs Predicate(B, A)

Public class

TRotationInPlaceMerge

Merge policy for merge sort.

TRotationPolicy Policy for array rotation algorithm.

Public struct

TRValueToLValueReference

TRValueToLValueReference converts any rvalue reference type into the equivalent lvalue reference, otherwise returns the same type.

Public struct

TScopeCounter

Commonly used to make sure a value is incremented, and then decremented anyway the function can terminate.

Public class

TScopedCallback

Helper object for batching callback requests and firing on destruction of the FScopedCallback object.

Public class

TSharedFromThis

Derive your class from TSharedFromThis to enable access to a TSharedRef directly from an object instance that's already been allocated.

Public class

TSharedPtr

TSharedPtr is a non-intrusive reference-counted authoritative object pointer.

Public class

TSharedRef

TSharedRef is a non-nullable, non-intrusive reference-counted authoritative object reference.

Public struct

TStorageOwnerType

Public struct

TTransformTuple_Impl

Public struct

TTuple

Public struct

TTupleArity

Traits class which calculates the number of elements in a tuple.

Public struct

TTupleBase

Public struct

TTupleBaseElement

Public struct

TTupleElementGetterByIndex

Public struct

TTupleElementGetterByType

Public struct

TTypeCompatibleBytes

An untyped array of data with compile-time alignment and size derived from another type.

Public struct

TTypeCountInParameterPack

Public struct

TTypeTraits

Traits for types.

Public struct

TTypeTraitsBase

Helper for array traits.

Public class

TUniqueFunction

TUniqueFunction

Public class

TUniqueObj

This is essentially a reference version of TUniquePtr Useful to force heap allocation of a value, e.g. in a TMap to give similar behaviour to TIndirectArray

Public class

TUniquePtr

Public struct

TUseBitwiseSwap

A traits class which specifies whether a Swap of a given type should swap the bits or use a traditional value-based swap.

Public struct

TValueOrError_ErrorProxy

Public struct

TValueOrError_ValueProxy

Public struct

TVisitTupleElements_Impl

Public struct

TVoid

Public class

TWeakPtr

TWeakPtr is a non-intrusive reference-counted weak object pointer.

Typedefs

Name

Description

FCopyFunc

FDeleteFunc

TAtomicBaseType_T

TCopyQualifiersAndRefsFromTo_T

TInvokeResult_T

TStorageOwnerTypeT

TTupleElement

Traits class which gets the element type of a TTuple with the given index.

TTupleIndex

Traits class which gets the tuple index of a given type from a given TTuple.

TUnderlyingIntegerType_T

Enums

Name

Description

Public enum

EDefaultConstructNonNullPtr

So we can construct TNonNullPtrs.

Public enum

EMemoryOrder

Public enum

EPimplPtrMode

Single-ownership smart pointer similar to TUniquePtr but with a few differences which make it particularly useful for (but not limited to) implementing the pimpl pattern:

Public enum

ESPMode

ESPMode is used select between either 'fast' or 'thread safe' shared pointer types.

Public enum

UE::Core::Private::Tuple::EForwardingConstructor

Public enum

UE::Core::Private::Tuple::EOtherTupleConstructor

Functions

Name Description

Public function

constexpr T

 

Align

(
    T Val,
    uint64 Alignment
)

Aligns a value to the nearest higher multiple of 'Alignment', which must be a power of two.

Public function

constexpr T

 

AlignArbitrary

(
    T Val,
    uint64 Alignment
)

Aligns a value to the nearest higher multiple of 'Alignment'.

Public function

constexpr T

 

AlignDown

(
    T Val,
    uint64 Alignment
)

Aligns a value to the nearest lower multiple of 'Alignment', which must be a power of two.

Public function

constexpr co...

 

AsConst

(
    T& Ref
)

Returns a non-const reference type as const.

Public function

void

 

AsConst

(
    const T&& Ref
)

Disallowed for rvalue references because it cannot extend their lifetime.

Public function

constexpr co...

 

AsConst

(
    T(&) Array
)

Returns a non-const reference type as const.

Public function

constexpr co...

 

AsConst

(
    T*const&& Ptr
)

Call with a reference instead of a pointer.

Public function

constexpr co...

 

AsConst

(
    T*const& Ptr
)

Call with a reference instead of a pointer.

Public function

T

 

BitMask

(
    uint32 Count
)

Generates a bitmask with a given number of bits set.

Public function

void

 

CleanupPointerArray

(
    TArray< TWeakPtr< Type > >& Pointe...
)

Given a TArray of TWeakPtr's, will remove any invalid pointers.

Public function

void

 

CleanupPointerMap

(
    TMap< TWeakPtr< KeyType >, ValueTyp...
)

Given a TMap of TWeakPtr's, will remove any invalid pointers.

Public function

bool

 

CompareItems

(
    const ElementType* A,
    const ElementType* B,
    SizeType Count
)

Public function

TSharedPtr< ...

 

ConstCastSharedPtr

(
    TSharedPtr< CastFromType, Mode > co...
)

Casts a 'const' shared pointer to 'mutable' shared pointer. (const_cast)

Public function

TSharedRef< ...

 

ConstCastSharedRef

(
    TSharedRef< CastFromType, Mode > co...
)

Casts a 'const' shared reference to 'mutable' shared reference. (const_cast)

Public function

void

 

ConstructItems

(
    void* Dest,
    const SourceElementType* Sourc...,
    SizeType Count
)

Constructs a range of items into memory from a set of arguments.

Public function

void

 

CopyAssignItems

(
    ElementType* Dest,
    const ElementType* Source,
    SizeType Count
)

Copy assigns a range of items.

Public function

T

 

CopyTemp

(
    const T& Val
)

Public function

T

 

CopyTemp

(
    T& Val
)

CopyTemp will enforce the creation of an rvalue which can bind to rvalue reference parameters.

Public function

T &&

 

CopyTemp

(
    T&& Val
)

Public function

T &&

 

DeclVal()

Equivalent to std::declval.

Public function

void

 

DefaultConstructItems

(
    void* Address,
    SizeType Count
)

Default constructs a range of items in memory.

Public function

void

 

DestructItem

(
    ElementType* Element
)

Destructs a single item in memory.

Public function

void

 

DestructItems

(
    ElementType* Element,
    SizeType Count
)

Destructs a range of items in memory.

Public function

void

 

Exchange

(
    T& A,
    T& B
)

Public function Static

double

 

Fmod

(
    double X,
    double Y
)

This file defines a few macros which can be used to restrict (via deprecation) ambiguous calls to functions expecting float params/return type.

Public function

T &&

 

Forward

(
    typename TRemoveReference< T >::Typ...
)

Forward will cast a reference to an rvalue reference. This is UE's equivalent of std::forward.

Public function

T &&

 

Forward

(
    typename TRemoveReference< T >::Typ...
)

Public function

decltype(aut...

 

ForwardAsBase

(
    typename TRemoveReference< T >::Typ...
)

ForwardAsBase will cast a reference to an rvalue reference of a base type.

Public function

decltype(aut...

 

ForwardAsBase

(
    typename TRemoveReference< T >::Typ...
)

Public function

uint32

 

Freeze::IntrinsicAppendHash

(
    const TTuple< KeyType, ValueType > ...,
    const FTypeLayoutDesc& TypeDesc,
    const FPlatformTypeLayoutParameters...,
    FSHA1& Hasher
)

Public function

uint32

 

Freeze::IntrinsicGetTargetAlignment

(
    const TTuple< KeyType, ValueType > ...,
    const FTypeLayoutDesc& TypeDesc,
    const FPlatformTypeLayoutParameters...
)

Public function

uint32

 

Freeze::IntrinsicUnfrozenCopy

(
    const FMemoryUnfreezeContent& Cont...,
    const TTuple< KeyType, ValueType > ...,
    void* OutDst
)

Public function

void

 

Freeze::IntrinsicWriteMemoryImage

(
    FMemoryImageWriter& Writer,
    const TSharedPtr< ObjectType, Mode ...,
    const FTypeLayoutDesc&
)

Public function

void

 

Freeze::IntrinsicWriteMemoryImage

(
    FMemoryImageWriter& Writer,
    const TTuple< KeyType, ValueType > ...,
    const FTypeLayoutDesc&
)

Public function Static

FORCEINLINE ...

 

Func

(
    T&& Value
)

Public function

void

 

Func

(
    const TTuple< int32, const TCHAR&#...
)

Public function Static

FORCEINLINE ...

 

Func

(
    Arg1 X,
    Arg2 Y
)

Public function

constexpr co...

 

GetData

(
    std::initializer_list< T > List
)

Public function

constexpr au...

 

GetData

(
    T&& Container
)

Generically gets the data pointer of a contiguous container

Public function

constexpr T ...

 

GetData

(
    T(&) Container
)

Public function

constexpr T ...

 

GetData

(
    T(&&) Container
)

Public function

constexpr co...

 

GetData

(
    const T(&) Container
)

Public function

constexpr co...

 

GetData

(
    const T(&&) Container
)

Public function

constexpr in...

 

GetNum

(
    std::initializer_list< T > List
)

Gets the number of items in an initializer list.

Public function

constexpr SI...

 

GetNum

(
    T(&) Container
)

Public function

constexpr SI...

 

GetNum

(
    T(&&) Container
)

Public function

constexpr SI...

 

GetNum

(
    const T(&) Container
)

Public function

constexpr SI...

 

GetNum

(
    const T(&&) Container
)

Public function

constexpr au...

 

GetNum

(
    T&& Container
)

Generically gets the number of items in a contiguous container

Public function

TEnableIf< T...

 

GetTypeHash

(
    EnumType E
)

Public function

uint32

 

GetTypeHash

(
    void* A
)

Public function

uint32

 

GetTypeHash

(
    const void* A
)

Public function

uint32

 

GetTypeHash

(
    const TCHAR* S
)

Public function

uint32

 

GetTypeHash

(
    double Value
)

Public function

uint32

 

GetTypeHash

(
    float Value
)

Public function

uint32

 

GetTypeHash

(
    const uint32 A
)

Public function

uint32

 

GetTypeHash

(
    const uint64 A
)

Public function

uint32

 

GetTypeHash

(
    const int32 A
)

Public function

uint32

 

GetTypeHash

(
    const int16 A
)

Public function

uint32

 

GetTypeHash

(
    const int8 A
)

Public function

uint32

 

GetTypeHash

(
    const uint8 A
)

Hash functions for common types.

Public function

uint32

 

GetTypeHash

(
    const TTuple< Types... >& Tuple
)

Public function

uint32

 

GetTypeHash

(
    const int64 A
)

Public function

uint32

 

GetTypeHash

(
    const uint16 A
)

Public function

uint32

 

GetTypeHash

(
    const TTuple<>& Tuple
)

Public function

uint32

 

HashCombine

(
    uint32 A,
    uint32 C
)

Combines two hash values to get a third.

Public function

uint32

 

HashCombineFast

(
    uint32 A,
    uint32 B
)

Combines two hash values to get a third.

Public function

ReferencedTy...

 

IfAThenAElseB

(
    ReferencedType* A,
    ReferencedType* B
)

Chooses between the two parameters based on whether the first is nullptr or not.

Public function

ReferencedTy...

 

IfPThenAElseB

(
    PredicateType Predicate,
    ReferencedType* A,
    ReferencedType* B
)

Branchless pointer selection based on predicate return PTRINT(Predicate) ? A : B;

Public function

T

 

ImplicitConv

(
    typename TIdentity< T >::Type Obj
)

Uses implicit conversion to create an instance of a specific type.

Public function

OutType

 

IntCastChecked

(
    InType In
)

Cast and check that value fits in OutType

Public function

constexpr bo...

 

IntFitsIn

(
    InType In
)

Test if value can make a lossless static_cast roundtrip via OutType without a sign change

Public function

auto

 

Invoke

(
    PtrMemFunType PtrMemFun,
    TargetType&& Target,
    ArgTypes&&... Args
)

Public function

auto

 

Invoke

(
    ReturnType ObjType::* pdm,
    TargetType&& Target
)

Public function

auto

 

Invoke

(
    FuncType&& Func,
    ArgTypes&&... Args
)

Invokes a callable with a set of arguments.

Public function

constexpr bo...

 

IsAligned

(
    T Val,
    uint64 Alignment
)

Checks if a pointer is aligned to the specified alignment.

Public function

TValueOrErro...

 

MakeError

(
    ArgTypes&&... Args
)

Public function

TPimplPtr< T...

 

MakePimpl

(
    ArgTypes&&... Args
)

Heap-allocates an instance of T with the given arguments and returns it as a TPimplPtr.

Public function

SharedPointe...

 

MakeShareable

(
    ObjectType* InObject
)

MakeShareable utility function.

Public function

SharedPointe...

 

MakeShareable

(
    ObjectType* InObject,
    DeleterType&& InDeleter
)

MakeShareable utility function.

Public function

TSharedRef< ...

 

MakeShared

(
    InArgTypes&&... Args
)

MakeShared utility function.

Public function

*FORCEIN...

 

MakeTuple

(
    Types&&... Args
)

Public function

TEnableIf< T...

 

MakeUnique

(
    TArgs&&... Args
)

Overload to cause a compile error when MakeUnique is attempted.

Public function

TEnableIf<&#...

 

MakeUnique

(
    TArgs&&... Args
)

Allocates a new object of type T with the given arguments and returns it as a TUniquePtr.

Public function

TEnableIf< T...

 

MakeUnique

(
    SIZE_T Size
)

Allocates a new array of type T with the given size and returns it as a TUniquePtr.

Public function

TValueOrErro...

 

MakeValue

(
    ArgTypes&&... Args
)

Public function

ForwardIt

 

MaxElement

(
    ForwardIt First,
    ForwardIt Last
)

Works just like std::max_element.

Public function

ForwardIt

 

MaxElement

(
    ForwardIt First,
    ForwardIt Last,
    PredicateType Predicate
)

Works just like std::max_element.

Public function

void

 

Merge

(
    T* Out,
    T* In,
    const int32 Mid,
    const int32 Num,
    const PREDICATE_CLASS& Predicate
)

Stable merge to perform sort below. Stable sort is slower than non-stable algorithm.

Public function

ForwardIt

 

MinElement

(
    ForwardIt First,
    ForwardIt Last,
    PredicateType Predicate
)

Works just like std::min_element.

Public function

ForwardIt

 

MinElement

(
    ForwardIt First,
    ForwardIt Last
)

Works just like std::min_element.

Public function

void

 

Move

(
    T& A,
    typename TMoveSupportTraits< T >::M...
)

This is used to provide type specific behavior for a move which may change the value of B.

Public function

void

 

Move

(
    T& A,
    typename TMoveSupportTraits< T >::C...
)

This is used to provide type specific behavior for a copy which cannot change the value of B.

Public function

void

 

MoveAssignItems

(
    ElementType* Dest,
    const ElementType* Source,
    SizeType Count
)

Move assigns a range of items.

Public function

void

 

MoveConstructItems

(
    void* Dest,
    const ElementType* Source,
    SizeType Count
)

Move constructs a range of items into memory.

Public function

TRemoveRefer...

 

MoveTemp

(
    T&& Obj
)

MoveTemp will cast a reference to an rvalue reference.

Public function

TRemoveRefer...

 

MoveTempIfPossible

(
    T&& Obj
)

MoveTemp will cast a reference to an rvalue reference.

Public function

bool

 

operator!=

(
    TSharedRef< ObjectTypeA, Mode > con...,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Tests to see if a TSharedRef is not "equal" to a TSharedPtr (shared pointer is invalid, or both refer to different objects)

Public function

bool

 

operator!=

(
    TYPE_OF_NULLPTR,
    const TUniquePtr< T >& Rhs
)

Public function

bool

 

operator!=

(
    const TUniquePtr< T >& Lhs,
    TYPE_OF_NULLPTR
)

Inequality comparison operator against nullptr.

Public function

bool

 

operator!=

(
    const TUniquePtr< T >& Lhs,
    const TUniquePtr< T >& Rhs
)

Public function

bool

 

operator!=

(
    const TUniquePtr< LhsT >& Lhs,
    const TUniquePtr< RhsT >& Rhs
)

Inequality comparison operator

Public function

bool

 

operator!=

(
    TYPE_OF_NULLPTR,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global inequality operator for TWeakPtr

Public function

bool

 

operator!=

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TYPE_OF_NULLPTR
)

Global inequality operator for TWeakPtr

Public function

bool

 

operator!=

(
    TSharedPtr< ObjectTypeA, Mode > con...,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator!=

(
    TSharedRef< ObjectTypeA, Mode > con...,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator!=

(
    TYPE_OF_NULLPTR,
    const TFunction< FuncType >& Func
)

Nullptr inequality operator.

Public function

bool

 

operator!=

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator!=

(
    const TPimplPtr< T, Mode >& Ptr,
    TYPE_OF_NULLPTR
)

Public function

bool

 

operator!=

(
    TSharedPtr< ObjectTypeA, Mode > con...,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Global inequality operator for TSharedPtr

Public function

bool

 

operator!=

(
    TSharedPtr< ObjectTypeA, Mode > con...,
    TYPE_OF_NULLPTR
)

Global inequality operator for TSharedPtr

Public function

bool

 

operator!=

(
    const TFunction< FuncType >& Func,
    TYPE_OF_NULLPTR
)

Nullptr inequality operator.

Public function

bool

 

operator!=

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TSharedRef< ObjectTypeB, Mode > con...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator!=

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global inequality operator for TWeakPtr

Public function

bool

 

operator!=

(
    TSharedPtr< ObjectTypeB, Mode > con...,
    TSharedRef< ObjectTypeA, Mode > con...
)

Tests to see if a TSharedRef is not "equal" to a TSharedPtr (shared pointer is invalid, or both refer to different objects) (reverse)

Public function

bool

 

operator!=

(
    TYPE_OF_NULLPTR,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Global inequality operator for TSharedPtr

Public function

bool

 

operator!=

(
    TSharedRef< ObjectTypeA, Mode > con...,
    TSharedRef< ObjectTypeB, Mode > con...
)

Global inequality operator for TSharedRef

Public function

bool

 

operator!=

(
    TYPE_OF_NULLPTR,
    const TPimplPtr< T, Mode >& Ptr
)

Public function

bool

 

operator==

(
    TYPE_OF_NULLPTR,
    const TFunction< FuncType >& Func
)

Nullptr equality operator.

Public function

bool

 

operator==

(
    TYPE_OF_NULLPTR,
    const TPimplPtr< T, Mode >& Ptr
)

Public function

bool

 

operator==

(
    const TRefCountPtr< ReferencedType ...,
    const TRefCountPtr< ReferencedType ...
)

Public function

bool

 

operator==

(
    const TRefCountPtr< ReferencedType ...,
    ReferencedType* B
)

Public function

bool

 

operator==

(
    ReferencedType* A,
    const TRefCountPtr< ReferencedType ...
)

Public function

bool

 

operator==

(
    TSharedRef< ObjectTypeA, Mode > con...,
    TSharedRef< ObjectTypeB, Mode > con...
)

Global equality operator for TSharedRef

Public function

bool

 

operator==

(
    TSharedPtr< ObjectTypeA, Mode > con...,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Global equality operator for TSharedPtr

Public function

bool

 

operator==

(
    TSharedPtr< ObjectTypeA, Mode > con...,
    TYPE_OF_NULLPTR
)

Global equality operator for TSharedPtr

Public function

bool

 

operator==

(
    TYPE_OF_NULLPTR,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Global equality operator for TSharedPtr

Public function

bool

 

operator==

(
    TSharedRef< ObjectTypeA, Mode > con...,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Tests to see if a TSharedRef is "equal" to a TSharedPtr (both are valid and refer to the same object)

Public function

bool

 

operator==

(
    TSharedPtr< ObjectTypeB, Mode > con...,
    TSharedRef< ObjectTypeA, Mode > con...
)

Tests to see if a TSharedRef is "equal" to a TSharedPtr (both are valid and refer to the same object) (reverse)

Public function

bool

 

operator==

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TSharedRef< ObjectTypeB, Mode > con...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TSharedPtr< ObjectTypeB, Mode > con...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    TSharedRef< ObjectTypeA, Mode > con...,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    TSharedPtr< ObjectTypeA, Mode > con...,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    TWeakPtr< ObjectTypeA, Mode > const...,
    TYPE_OF_NULLPTR
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    TYPE_OF_NULLPTR,
    TWeakPtr< ObjectTypeB, Mode > const...
)

Global equality operator for TWeakPtr

Public function

bool

 

operator==

(
    const TUniquePtr< LhsT >& Lhs,
    const TUniquePtr< RhsT >& Rhs
)

Equality comparison operator

Public function

bool

 

operator==

(
    const TUniquePtr< T >& Lhs,
    const TUniquePtr< T >& Rhs
)

Public function

bool

 

operator==

(
    const TUniquePtr< T >& Lhs,
    TYPE_OF_NULLPTR
)

Equality comparison operator against nullptr.

Public function

bool

 

operator==

(
    TYPE_OF_NULLPTR,
    const TUniquePtr< T >& Rhs
)

Public function

bool

 

operator==

(
    const TPimplPtr< T, Mode >& Ptr,
    TYPE_OF_NULLPTR
)

Public function

bool

 

operator==

(
    const TFunction< FuncType >& Func,
    TYPE_OF_NULLPTR
)

Nullptr equality operator.

Public function

char

 

Overloaded

(
    const TCHAR* Arg
)

Creates a new TTuple by applying a functor to each of the elements.

Public function

const TCHAR ...

 

Overloaded

(
    const FString& Arg
)

Public function

uint32

 

PointerHash

(
    const void* Key,
    uint32 C
)

Public function

void

 

RadixSort32

(
    ValueType*restrict Dst,
    ValueType*
restrict Src,
    CountType Num,
    SortKeyClass SortKey
)

Very fast 32bit radix sort.

Public function

void

 

RadixSort32

(
    ValueType*restrict Dst,
    ValueType*
restrict Src,
    CountType Num
)

Public function

void

 

RadixSort32

(
    float*restrict Dst,
    float*
restrict Src,
    CountType Num
)

Public function

auto

 

Refines()

Helper function which can be used as an expression in a concept to refine ('inherit') another concept.

Public function

void

 

RelocateConstructItems

(
    void* Dest,
    const SourceElementType* Sourc...,
    SizeType Count
)

Relocates a range of items to a new memory location as a new type.

Public function

 

RESOLVE_FLOAT_AMBIGUITY_2_ARGS

(
    Fmod
)

Public function

TEnableIf< T...

 

ReverseBits

(
    T Bits
)

Reverses the order of the bits of a value.

Public function

void

 

SharedPointerInternals::EnableSharedFromThis

(
    TSharedPtr< SharedPtrType, Mode > c...,
    ObjectType const* InObject,
    TSharedFromThis< OtherType, Mode > ...
)

Templated helper function (const) that creates a shared pointer from an object instance

Public function

void

 

SharedPointerInternals::EnableSharedFromThis

(
    ...
)

Templated helper catch-all function, accomplice to the above helper functions

Public function

void

 

SharedPointerInternals::EnableSharedFromThis

(
    TSharedRef< SharedRefType, Mode > c...,
    ObjectType const* InObject,
    TSharedFromThis< OtherType, Mode > ...
)

Templated helper function (const) that creates a shared reference from an object instance

Public function

void

 

SharedPointerInternals::EnableSharedFromThis

(
    TSharedRef< SharedRefType, Mode >&...,
    ObjectType const* InObject,
    TSharedFromThis< OtherType, Mode > ...
)

Templated helper function that creates a shared reference from an object instance

Public function

void

 

SharedPointerInternals::EnableSharedFromThis

(
    TSharedPtr< SharedPtrType, Mode >&...,
    ObjectType const* InObject,
    TSharedFromThis< OtherType, Mode > ...
)

Templated helper function that creates a shared pointer from an object instance

Public function

TReferenceCo...

 

SharedPointerInternals::NewCustomReferenceController

(
    ObjectType* Object,
    DeleterType&& Deleter
)

Creates a custom reference controller with a specified deleter

Public function

TReferenceCo...

 

SharedPointerInternals::NewDefaultReferenceController

(
    ObjectType* Object
)

Creates a reference controller which just calls delete

Public function

TIntrusiveRe...

 

SharedPointerInternals::NewIntrusiveReferenceController

(
    ArgTypes&&... Args
)

Creates an intrusive reference controller

Public function

void

 

Sort

(
    T* First,
    const int32 Num
)

Sort elements.

Public function

void

 

Sort

(
    T** First,
    const int32 Num
)

Specialized version of the above Sort function for pointers to elements.

Public function

void

 

Sort

(
    T* First,
    const int32 Num,
    const PREDICATE_CLASS& Predicate
)

Sort elements using user defined predicate class.

Public function

void

 

Sort

(
    T** First,
    const int32 Num,
    const PREDICATE_CLASS& Predicate
)

Specialized version of the above Sort function for pointers to elements.

Public function

void

 

StableSort

(
    T** First,
    const int32 Num,
    const PREDICATE_CLASS& Predicate
)

Specialized version of the above StableSort function for pointers to elements.

Public function

void

 

StableSort

(
    T* First,
    const int32 Num,
    const PREDICATE_CLASS& Predicate
)

Stable sort elements using user defined predicate class.

Public function

void

 

StableSort

(
    T** First,
    const int32 Num
)

Specialized version of the above StableSort function for pointers to elements.

Public function

void

 

StableSort

(
    T* First,
    const int32 Num
)

Stable sort elements.

Public function

void

 

StableSortInternal

(
    T* First,
    const int32 Num,
    const PREDICATE_CLASS& Predicate
)

Stable sort elements using user defined predicate class.

Public function

T

 

StaticCast

(
    ArgType&& Arg
)

This exists to avoid a Visual Studio bug where using a cast to forward an rvalue reference array argument to a pointer parameter will cause bad code generation.

Public function

TSharedPtr< ...

 

StaticCastSharedPtr

(
    TSharedPtr< CastFromType, Mode > co...
)

Casts a shared pointer of one type to another type. (static_cast) Useful for down-casting.

Public function

TSharedRef< ...

 

StaticCastSharedRef

(
    TSharedRef< CastFromType, Mode > co...
)

SharedPointerInternals.h contains the implementation of reference counting structures we need.

Public function

TEnableIf< T...

 

Swap

(
    T& A,
    T& B
)

Swap two values. Assumes the types are trivially relocatable.

Public function

TEnableIf<&#...

 

Swap

(
    T& A,
    T& B
)

Public function

FORCEINLINET...

 

Tie

(
    Types&... Args
)

Tie function for structured unpacking of tuples into individual variables.

Public function

*decltyp...

 

TransformTuple

(
    TTuple< Types... >&& Tuple,
    FuncType Func
)

Public function

decltype(aut...

 

TransformTuple

(
    const TTuple< Types... >& Tuple,
    FuncType Func
)

Public function

T

 

UE::Core::Private::Atomic::AddExchange

(
    volatile T* Element,
    DiffType Diff
)

Public function

T *

 

UE::Core::Private::Atomic::AddExchange

(
    T*volatile* Element,
    DiffType Diff
)

Public function

T

 

UE::Core::Private::Atomic::AndExchange

(
    volatile T* Element,
    T AndValue
)

Public function

T

 

UE::Core::Private::Atomic::CompareExchange

(
    volatile T* Element,
    T ExpectedValue,
    T NewValue
)

Public function

T

 

UE::Core::Private::Atomic::DecrementExchange

(
    volatile T* Element
)

Public function

T *

 

UE::Core::Private::Atomic::DecrementExchange

(
    T*volatile* Element
)

Public function

T

 

UE::Core::Private::Atomic::Exchange

(
    volatile T* Element,
    T Value
)

Public function

T *

 

UE::Core::Private::Atomic::IncrementExchange

(
    T*volatile* Element
)

Public function

T

 

UE::Core::Private::Atomic::IncrementExchange

(
    volatile T* Element
)

Public function

T

 

UE::Core::Private::Atomic::Load

(
    const volatile T* Element
)

Public function

T

 

UE::Core::Private::Atomic::LoadRelaxed

(
    const volatile T* Element
)

Public function

T

 

UE::Core::Private::Atomic::OrExchange

(
    volatile T* Element,
    T OrValue
)

Public function

void

 

UE::Core::Private::Atomic::Store

(
    const volatile T* Element,
    T Value
)

Public function

void

 

UE::Core::Private::Atomic::StoreRelaxed

(
    const volatile T* Element,
    T Value
)

Public function

T *

 

UE::Core::Private::Atomic::SubExchange

(
    T*volatile* Element,
    DiffType Diff
)

Public function

T

 

UE::Core::Private::Atomic::SubExchange

(
    volatile T* Element,
    DiffType Diff
)

Public function

T

 

UE::Core::Private::Atomic::XorExchange

(
    volatile T* Element,
    T XorValue
)

Public function

auto

 

UE::Core::Private::DereferenceIfNecessary

(
    TargetType&& Target,
    ...
)

Public function

auto

 

UE::Core::Private::DereferenceIfNecessary

(
    TargetType&& Target,
    const volatile OuterType* Targ...
)

Public function

bool

 

UE::Core::Private::Function::IsBound

(
    const T& Func
)

Public function

T &&

 

UE::Core::Private::IsInvocable::DeclVal()

Public function

TSharedRef< ...

 

UE::Core::Private::MakeSharedRef

(
    ObjectType* InObject,
    SharedPointerInternals::TReferenceC...
)

Needed to work around an Android compiler bug - we need to construct a TSharedRef from MakeShared without making MakeShared a friend in order to access the private constructor.

Public function

void *

 

UE::Core::Private::PimplPtr::CallCopier

(
    void* Ptr
)

Public function

void

 

UE::Core::Private::PimplPtr::CallDeleter

(
    void* Ptr
)

Public function Static

void *

 

UE::Core::Private::PimplPtr::CopyFunc

(
    void* A
)

Public function

void

 

UE::Core::Private::PimplPtr::DeleterFunc

(
    void* Ptr
)

Public function Static

void

 

UE::Core::Private::Tuple::Assign

(
    LhsType& Lhs,
    RhsType&& Rhs,
    TIntegerSequence< uint32, Indices.....
)

Public function

decltype(Con...

 

UE::Core::Private::Tuple::AssignableConceptCheck

(
    Deduced&& ...
)

Public function

void

 

UE::Core::Private::Tuple::ConceptCheckingHelper

(
    ArgTypes&& ...
)

This only exists to have something to expand a parameter pack into, for concept checking.

Public function

std::enable_...

 

UE::Core::Private::Tuple::ConstructibleConceptCheck

(
    Deduced&& ...
)

Public function

TTuple< type...

 

UE::Core::Private::Tuple::MakeTupleImpl

(
    Types&&... Args
)

Public function

char(&

 

UEArrayCountHelper

(
    const T
)

Public function

FORCEINLINEv...

 

VisitTupleElements

(
    FuncType&& Func,
    FirstTupleType&& FirstTuple,
    TupleTypes&&... Tuples
)

Visits each element in the specified tuples in parallel and applies them as arguments to the functor.

Public function

bool

 

XOR

(
    bool A,
    bool B
)

A logical exclusive or function.

Variables

Name Description

Public variable

auto

 

MyTuple

Makes a TTuple from some arguments.

Public variable

constexpr SIZE_...

 

RequiredAlignment