TObjectPtr

[TObjectPtr](API\Runtime\CoreUObject\UObject\TObjectPtr) is a type of pointer to a [UObject](API\Runtime\CoreUObject\UObject\UObject) that is meant to function as a drop-in replacement for raw pointer member properties.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

FObjectPtr

TObjectPtr

References

Module

CoreUObject

Header

/Engine/Source/Runtime/CoreUObject/Public/UObject/ObjectPtr.h

Include

#include "UObject/ObjectPtr.h"

Syntax

template<typename T>
struct TObjectPtr : private FObjectPtr

Remarks

TObjectPtr is a type of pointer to a UObject that is meant to function as a drop-in replacement for raw pointer member properties. It is size equivalent to a 64-bit pointer and supports access tracking and optional lazy load behavior in editor builds. It stores either the address to the referenced object or (in editor builds) an index in the object handle table that describes a referenced object that hasn't been loaded yet. It is serialized identically to a raw pointer to a UObject. When resolved, its participation in garbage collection is identical to a raw pointer to a UObject.

This is useful for automatic replacement of raw pointers to support advanced cook-time dependency tracking and editor-time lazy load use cases. See UnrealObjectPtrTool for tooling to automatically replace raw pointer members with FObjectPtr/TObjectPtr members instead.

Constructors

Name Description

Public function

TObjectPtr()

Public function

TObjectPtr

(
    TObjectPtr< T >&&
)

Public function

TObjectPtr

(
    const TObjectPtr< T >&
)

Public function

TObjectPtr

(
    TYPE_OF_NULLPTR
)

Public function

TObjectPtr

(
    const TObjectPtr< U >& Other
)

Public function

TObjectPtr

(
    U&& Object
)

Public function

TObjectPtr

(
    TPrivateObjectPtr< T >&& PrivatePt...
)

Functions

Name Description

Public function Const

T *

 

Get()

: OBJPTR: There is a risk that the FObjectPtr is storing a reference to the wrong type.

Operators

Name Description

Public function Const

 

operator T *()

Public function

 

operator T *&()

Public function Const

 

operator U *()

Public function Const

 

operator UPTRINT()

Public function Const

bool

 

operator!=

(
    const TObjectPtr< U >& Other
)

Public function Const

T &

 

operator*()

Public function

TObjectPtr< ...

 

operator=

(
    TPrivateObjectPtr< T >&& PrivatePt...
)

Public function

TObjectPtr< ...

 

operator=

(
    U&& Object
)

Public function

TObjectPtr< ...

 

operator=

(
    const TObjectPtr< U >& Other
)

Public function

TObjectPtr< ...

 

operator=

(
    TYPE_OF_NULLPTR
)

Public function

TObjectPtr< ...

 

operator=

(
    const TObjectPtr< T >&
)

Public function

TObjectPtr< ...

 

operator=

(
    TObjectPtr< T >&&
)

Public function Const

bool

 

operator==

(
    const TObjectPtr< U >& Other
)

Public function Const

T *

 

operator->()

Typedefs

Name

Description

ElementType