UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NonNullPropertyUtils.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#pragma once
4
5
#include "
CoreTypes.h
"
6
#include "Misc/Optional.h"
7
8
namespace
UE::CoreUObject
9
{
10
enum class
EAllowSetNullOnNonNullableBehavior
:
uint8
11
{
12
Disabled
,
13
Enabled
14
};
15
16
#if WITH_EDITORONLY_DATA
17
class
FScopedSetNullOnNonNullable
18
{
19
public
:
20
// If set, InBehavior will adjust later code in stack to adopt the behavior
21
// If not set, prevailing behavior is preserved
22
COREUOBJECT_API
explicit
FScopedSetNullOnNonNullable
(
TOptional<EAllowSetNullOnNonNullableBehavior>
InBehavior
);
23
COREUOBJECT_API
~FScopedSetNullOnNonNullable
();
24
25
EAllowSetNullOnNonNullableBehavior
GetBehavior
()
const
;
26
27
private
:
28
FScopedSetNullOnNonNullable
(
const
FScopedSetNullOnNonNullable
&) =
delete
;
29
FScopedSetNullOnNonNullable
(
FScopedSetNullOnNonNullable
&&) =
delete
;
30
FScopedSetNullOnNonNullable
& operator=(
const
FScopedSetNullOnNonNullable
&) =
delete
;
31
FScopedSetNullOnNonNullable
& operator=(
FScopedSetNullOnNonNullable
&&) =
delete
;
32
33
FScopedSetNullOnNonNullable
*
Previous
;
34
EAllowSetNullOnNonNullableBehavior Behavior;
35
bool
bIsBehaviorSet
;
36
};
37
38
// Thread local, set with FScopedSetNullOnNonNullable
39
// If true, will allow setting null on a NonNullable property
40
// Some cases in editor deserialization requires null to be set on NonNull properties
41
// Example: deserializing a previously null value to NonNullable property from the transaction buffer for Undo/Redo
42
EAllowSetNullOnNonNullableBehavior
AllowSetNullOnNonNullableBehavior
();
43
#else
44
inline
EAllowSetNullOnNonNullableBehavior
AllowSetNullOnNonNullableBehavior
()
45
{
46
return
EAllowSetNullOnNonNullableBehavior::Disabled
;
47
}
48
#endif
49
}
CoreTypes.h
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
EUINavigation::Previous
@ Previous
uint8
uint8_t uint8
Definition
binka_ue_file_header.h:8
UE::CoreUObject
Definition
CoreGlobals.cpp:268
UE::CoreUObject::AllowSetNullOnNonNullableBehavior
EAllowSetNullOnNonNullableBehavior AllowSetNullOnNonNullableBehavior()
Definition
NonNullPropertyUtils.h:44
UE::CoreUObject::EAllowSetNullOnNonNullableBehavior
EAllowSetNullOnNonNullableBehavior
Definition
NonNullPropertyUtils.h:11
UE::CoreUObject::EAllowSetNullOnNonNullableBehavior::Enabled
@ Enabled
UE::CoreUObject::EAllowSetNullOnNonNullableBehavior::Disabled
@ Disabled
TOptional
Definition
Optional.h:131
Engine
Source
Runtime
CoreUObject
Internal
UObject
NonNullPropertyUtils.h
Generated by
1.9.8