UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectPtrTestClass.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#pragma once
4
5
#if WITH_TESTS
6
7
#include "
UObject/Object.h
"
8
#include "
UObject/ObjectPtr.h
"
9
#include "
UObject/ObjectMacros.h
"
10
#include "
UObject/ScriptMacros.h
"
11
#include "
Templates/NonNullPointer.h
"
12
#include "
Templates/SubclassOf.h
"
13
14
#include "ObjectPtrTestClass.generated.h"
15
16
//simple test class for testing TObjectPtr resolve behavior
17
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
18
class
UObjectPtrTestClass
:
public
UObject
19
{
20
GENERATED_BODY
()
21
};
22
23
//abstract test class for testing TObjectPtr resolve behavior
24
UCLASS
(Abstract, meta=(LoadBehavior=
LazyOnDemand
))
25
class
UObjectPtrAbstractTestClass
:
public
UObject
26
{
27
GENERATED_BODY
()
28
};
29
30
//derived-from-abstract test class for testing TObjectPtr resolve behavior
31
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
32
class
UObjectPtrAbstractDerivedTestClass
:
public
UObjectPtrAbstractTestClass
33
{
34
GENERATED_BODY
()
35
};
36
37
//test class with typed reference to another class
38
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
39
class
UObjectPtrTestClassWithRef
:
public
UObject
40
{
41
GENERATED_BODY
()
42
43
public
:
44
UPROPERTY
()
45
TObjectPtr
<
UObjectPtrTestClass
> ObjectPtr;
46
47
UPROPERTY
()
48
TObjectPtr
<
UObjectPtrTestClass
>
ObjectPtrNonNullable
;
49
50
UPROPERTY
()
51
TObjectPtr
<
UObjectPtrAbstractTestClass
>
ObjectPtrAbstractNonNullable
;
52
53
UPROPERTY
()
54
TArray
<
TObjectPtr
<
UObjectPtrTestClass
>>
ArrayObjPtr
;
55
};
56
57
58
//test class with typed reference to another class
59
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
60
class
UObjectWithClassProperty
:
public
UObject
61
{
62
GENERATED_BODY
()
63
64
public
:
65
UPROPERTY
()
66
TObjectPtr
<
UClass
> ClassPtr;
67
UPROPERTY
()
68
TSubclassOf
<
UObjectPtrTestClass
> SubClass;
69
UPROPERTY
()
70
UClass
*
ClassRaw
;
71
};
72
73
//test class with raw pointer
74
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
75
class
UObjectWithRawProperty
:
public
UObject
76
{
77
GENERATED_BODY
()
78
79
public
:
80
UPROPERTY
()
81
UObjectPtrTestClass
* ObjectPtr;
82
UPROPERTY
()
83
UObjectPtrTestClass
*
ObjectPtrNonNullable
;
84
};
85
86
87
//derived test class
88
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
89
class
UObjectPtrDerrivedTestClass
:
public
UObjectPtrTestClass
90
{
91
GENERATED_BODY
()
92
};
93
94
95
//non lazy test class
96
UCLASS
()
97
class
UObjectPtrNotLazyTestClass
:
public
UObject
98
{
99
GENERATED_BODY
()
100
};
101
102
103
//stress testing class
104
UCLASS
(meta=(LoadBehavior=
LazyOnDemand
))
105
class
UObjectPtrStressTestClass
:
public
UObject
106
{
107
GENERATED_BODY
()
108
109
public
:
110
uint8
Data[
PLATFORM_CACHE_LINE_SIZE
];
111
};
112
113
class
FTestBaseClass
114
{
115
public
:
116
virtual
~FTestBaseClass
() =
default
;
117
virtual
void
VirtFunc
() { };
118
};
119
120
UCLASS
()
121
class
UMiddleClass
:
public
UObject
,
public
FTestBaseClass
122
{
123
GENERATED_BODY
()
124
125
public
:
126
virtual
void
VirtFunc
()
override
{ };
127
};
128
129
130
class
FAnotherBaseClass
131
{
132
public
:
133
virtual
~FAnotherBaseClass
() =
default
;
134
virtual
void
AnotherVirtFunc
() { };
135
};
136
137
138
UCLASS
()
139
class
UDerrivedClass
:
public
UMiddleClass
,
public
FAnotherBaseClass
140
{
141
GENERATED_BODY
()
142
public
:
143
virtual
void
AnotherVirtFunc
()
override
{ };
144
};
145
146
147
#endif
PLATFORM_CACHE_LINE_SIZE
#define PLATFORM_CACHE_LINE_SIZE
Definition
Platform.h:938
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
NonNullPointer.h
ObjectMacros.h
UPROPERTY
#define UPROPERTY(...)
UObject definition macros.
Definition
ObjectMacros.h:744
GENERATED_BODY
#define GENERATED_BODY(...)
Definition
ObjectMacros.h:765
UCLASS
#define UCLASS(...)
Definition
ObjectMacros.h:776
ObjectPtr.h
Object.h
ScriptMacros.h
SubclassOf.h
uint8
uint8_t uint8
Definition
binka_ue_file_header.h:8
TArray
Definition
Array.h:670
TSubclassOf
Definition
SubclassOf.h:30
UClass
Definition
Class.h:3793
UObject
Definition
Object.h:95
TObjectPtr
Definition
ObjectPtr.h:488
Engine
Source
Runtime
CoreUObject
Tests
ObjectPtrTestClass.h
Generated by
1.9.8