UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UnrealType.h File Reference
#include "Concepts/GetTypeHashable.h"
#include "Concepts/DerivedFrom.h"
#include "Containers/Array.h"
#include "Containers/ArrayView.h"
#include "Containers/ContainerAllocationPolicies.h"
#include "Containers/EnumAsByte.h"
#include "Containers/LinkedListBuilder.h"
#include "Containers/List.h"
#include "Containers/Map.h"
#include "Containers/ScriptArray.h"
#include "Containers/Set.h"
#include "Containers/StringFwd.h"
#include "Containers/UnrealString.h"
#include "CoreGlobals.h"
#include "HAL/MemoryBase.h"
#include "HAL/UnrealMemory.h"
#include "Logging/LogCategory.h"
#include "Logging/LogMacros.h"
#include "Misc/AssertionMacros.h"
#include "Misc/EnumClassFlags.h"
#include "Misc/NotNull.h"
#include "Misc/Optional.h"
#include "Serialization/Archive.h"
#include "Serialization/MemoryImage.h"
#include "Serialization/SerializedPropertyScope.h"
#include "Serialization/StructuredArchive.h"
#include "Templates/Casts.h"
#include "Templates/IsPODType.h"
#include "Templates/IsUEnumClass.h"
#include "Templates/MemoryOps.h"
#include "Templates/Models.h"
#include "Templates/SharedPointer.h"
#include "Templates/Tuple.h"
#include "Templates/UnrealTemplate.h"
#include "Templates/UnrealTypeTraits.h"
#include "Trace/Detail/Channel.h"
#include "UObject/Class.h"
#include "UObject/Field.h"
#include "UObject/LazyObjectPtr.h"
#include "UObject/NameTypes.h"
#include "UObject/Object.h"
#include "UObject/ObjectMacros.h"
#include "UObject/ObjectPtr.h"
#include "UObject/PersistentObjectPtr.h"
#include "UObject/PropertyPortFlags.h"
#include "UObject/PropertyTag.h"
#include "UObject/ScriptDelegates.h"
#include "UObject/ScriptInterface.h"
#include "UObject/SoftObjectPtr.h"
#include "UObject/SparseDelegate.h"
#include "UObject/TopLevelAssetPath.h"
#include "UObject/UObjectGlobals.h"
#include "UObject/UnrealNames.h"
#include "UObject/WeakObjectPtr.h"
#include <type_traits>
#include "PropertyWrapper.h"

Go to the source code of this file.

Classes

class  FProperty
 
class  FPropertyHelpers
 
class  UEProperty_Private::FProperty_DoNotUse
 
struct  FDefinedProperty
 
class  FDefaultConstructedPropertyElement
 
class  TPropertyTypeFundamentals< InTCppType >
 
class  TProperty< InTCppType, TInPropertyBaseClass >
 
class  TProperty_WithEqualityAndSerializer< InTCppType, TInPropertyBaseClass >
 
class  FNumericProperty
 
class  TProperty_Numeric< InTCppType >
 
class  FByteProperty
 
class  FInt8Property
 
class  FInt16Property
 
class  FIntProperty
 
class  FInt64Property
 
class  FUInt16Property
 
class  FUInt32Property
 
class  FUInt64Property
 
class  FFloatProperty
 
class  FDoubleProperty
 
class  FBoolProperty
 
class  FObjectPropertyBase
 
class  TFObjectPropertyBase< InTCppType >
 
class  FObjectProperty
 
class  FWeakObjectProperty
 
class  FLazyObjectProperty
 
class  FSoftObjectProperty
 
class  FClassProperty
 
class  FSoftClassProperty
 
class  FInterfaceProperty
 
class  FNameProperty
 
class  FArrayProperty
 
class  FMapProperty
 
class  FSetProperty
 
class  FScriptArrayHelper
 
class  FScriptArrayHelper_InContainer
 
struct  TScriptContainerIterator< ContainerType >
 
class  FScriptMapHelper
 
class  FScriptMapHelper_InContainer
 
class  FScriptSetHelper
 
class  FScriptSetHelper_InContainer
 
class  FStructProperty
 
class  FDelegateProperty
 
class  FMulticastDelegateProperty
 
class  TProperty_MulticastDelegate< InTCppType >
 
class  FMulticastInlineDelegateProperty
 
class  FMulticastSparseDelegateProperty
 
struct  FCustomPropertyListNode
 
class  FEditPropertyChain
 
struct  FPropertyChangedEvent
 
struct  FPropertyChangedChainEvent
 
class  TFieldIterator< T >
 
struct  TFieldRange< T >
 
class  FPropertyValueIterator
 
class  TPropertyValueIterator< T >
 
struct  TPropertyValueRange< T >
 

Namespaces

namespace  UE
 
namespace  UE::GC
 
namespace  UE::CoreUObject
 
namespace  UE::CoreUObject::Private
 
namespace  UEProperty_Private
 
namespace  EPropertyChangeType
 
namespace  EFieldIteratorFlags
 

Macros

#define UE_API   COREUOBJECT_API
 
#define CPP_ARRAY_DIM(ArrayName, ClassName)    (sizeof(((ClassName*)0)->ArrayName) / sizeof(((ClassName*)0)->ArrayName[0]))
 

Typedefs

using FLargeWorldCoordinatesRealProperty = FDoubleProperty
 
using instead = FObjectProperty
 
using FFreezableScriptArray = TScriptArray< TMemoryImageAllocator< DEFAULT_ALIGNMENT > >
 
using FFreezableScriptMap = TScriptMap< FMemoryImageSetAllocator >
 
typedef uint32 EPropertyChangeType::Type
 
using UEProperty_Private::FPropertyListBuilderPropertyLink = TLinkedListBuilder< FProperty, TLinkedListBuilderNextLinkMemberVar< FProperty, &FProperty::PropertyLinkNext > >
 
using UEProperty_Private::FPropertyListBuilderRefLink = TLinkedListBuilder< FProperty, TLinkedListBuilderNextLinkMemberVar< FProperty, &FProperty::NextRef > >
 
using UEProperty_Private::FPropertyListBuilderDestructorLink = TLinkedListBuilder< FProperty, TLinkedListBuilderNextLinkMemberVar< FProperty, &FProperty::DestructorLinkNext > >
 
using UEProperty_Private::FPropertyListBuilderPostConstructLink = TLinkedListBuilder< FProperty, TLinkedListBuilderNextLinkMemberVar< FProperty, &FProperty::PostConstructLinkNext > >
 

Enumerations

enum class  UE::CoreUObject::Private::ENonNullableBehavior { UE::CoreUObject::Private::LogWarning = 0 , UE::CoreUObject::Private::LogError = 1 , UE::CoreUObject::Private::CreateDefaultObjectIfPossible = 2 }
 
enum  EPropertyExportCPPFlags {
  CPPF_None = 0x00000000 , CPPF_OptionalValue = 0x00000001 , CPPF_ArgumentOrReturnValue = 0x00000002 , CPPF_Implementation = 0x00000004 ,
  CPPF_CustomTypeName = 0x00000008 , CPPF_NoConst = 0x00000010 , CPPF_NoRef = 0x00000020 , CPPF_NoStaticArray = 0x00000040 ,
  CPPF_BlueprintCppBackend = 0x00000080 , CPPF_NoTObjectPtr = 0x00000100
}
 
enum class  EConvertFromTypeResult { UseSerializeItem , Serialized , CannotConvert , Converted }
 
enum class  EPropertyMemoryAccess : uint8 { Direct , InContainer }
 
enum class  EPropertyPointerType { Direct = 0 , Container = 1 }
 
enum class  EObjectPropertyOptions { None = 0 , AllowNullValuesOnNonNullableProperty = 1 }
 
enum class  EFieldIterationFlags : uint8 {
  None = 0 , IncludeSuper = 1<<0 , IncludeDeprecated = 1<<1 , IncludeInterfaces = 1<<2 ,
  IncludeAll = IncludeSuper | IncludeDeprecated | IncludeInterfaces , Default = IncludeSuper | IncludeDeprecated
}
 
enum  EFieldIteratorFlags::SuperClassFlags { EFieldIteratorFlags::ExcludeSuper = (uint8)EFieldIterationFlags::None , EFieldIteratorFlags::IncludeSuper = (uint8)EFieldIterationFlags::IncludeSuper }
 
enum  EFieldIteratorFlags::DeprecatedPropertyFlags { EFieldIteratorFlags::ExcludeDeprecated = (uint8)EFieldIterationFlags::None , EFieldIteratorFlags::IncludeDeprecated = (uint8)EFieldIterationFlags::IncludeDeprecated }
 
enum  EFieldIteratorFlags::InterfaceClassFlags { EFieldIteratorFlags::ExcludeInterfaces = (uint8)EFieldIterationFlags::None , EFieldIteratorFlags::IncludeInterfaces = (uint8)EFieldIterationFlags::IncludeInterfaces }
 
enum class  EPropertyValueIteratorFlags : uint8 { NoRecursion = 0 , FullRecursion = 1 }
 

Functions

COREUOBJECT_API DECLARE_LOG_CATEGORY_EXTERN (LogType, Log, All)
 
ENonNullableBehavior UE::CoreUObject::Private::GetNonNullableBehavior ()
 
const TCHARUE::CoreUObject::Private::ImportEnumFromBuffer (UEnum *Enum, const FProperty *PropertyToSet, const FNumericProperty *UnderlyingProp, const TCHAR *PropertyClassName, const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, FOutputDevice *ErrorText)
 
void UE::CoreUObject::Private::ExportEnumToBuffer (const UEnum *Enum, const FProperty *Prop, const FNumericProperty *NumericProp, FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PropertyPointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope)
 
 ENUM_CLASS_FLAGS (EObjectPropertyOptions)
 
 ENUM_CLASS_FLAGS (EFieldIterationFlags)
 
template<class FieldType >
FieldType * GetChildFieldsFromStruct (const UStruct *Owner)
 
template<>
UFieldGetChildFieldsFromStruct (const UStruct *Owner)
 
template<>
FFieldGetChildFieldsFromStruct (const UStruct *Owner)
 
template<UE::CDerivedFrom< UField > T>
T * FindUField (const UStruct *Owner, FName FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
template<UE::CDerivedFrom< UField > T>
T * FindUField (const UStruct *Owner, const TCHAR *FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
template<UE::CDerivedFrom< FField > T>
T * FindFProperty (const UStruct *Owner, FName FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
template<UE::CDerivedFrom< FField > T>
T * FindFProperty (const UStruct *Owner, const TCHAR *FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
FFieldVariant FindUFieldOrFProperty (const UStruct *Owner, FName FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
FFieldVariant FindUFieldOrFProperty (const UStruct *Owner, const TCHAR *FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
template<UE::CDerivedFrom< UField > T>
T * FindUFieldOrFProperty (const UStruct *Owner, FName FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
template<UE::CDerivedFrom< UField > T>
T * FindUFieldOrFProperty (const UStruct *Owner, const TCHAR *FieldName, EFieldIterationFlags IterationFlags=EFieldIterationFlags::Default)
 
template<typename T >
T * FindFieldChecked (const UStruct *Scope, FName FieldName)
 

Variables

const Type EPropertyChangeType::Unspecified = 1 << 0
 
const Type EPropertyChangeType::ArrayAdd = 1 << 1
 
const Type EPropertyChangeType::ArrayRemove = 1 << 2
 
const Type EPropertyChangeType::ArrayClear = 1 << 3
 
const Type EPropertyChangeType::ValueSet = 1 << 4
 
const Type EPropertyChangeType::Duplicate = 1 << 5
 
const Type EPropertyChangeType::Interactive = 1 << 6
 
const Type EPropertyChangeType::Redirected = 1 << 7
 
const Type EPropertyChangeType::ArrayMove = 1 << 8
 
const Type EPropertyChangeType::ToggleEditable = 1 << 9
 
const Type EPropertyChangeType::ResetToDefault = 1 << 10
 

Macro Definition Documentation

◆ CPP_ARRAY_DIM

#define CPP_ARRAY_DIM (   ArrayName,
  ClassName 
)     (sizeof(((ClassName*)0)->ArrayName) / sizeof(((ClassName*)0)->ArrayName[0]))

helper to calculate an array's dimensions

◆ UE_API

#define UE_API   COREUOBJECT_API

Typedef Documentation

◆ FFreezableScriptArray

◆ FFreezableScriptMap

◆ FLargeWorldCoordinatesRealProperty

◆ instead

Enumeration Type Documentation

◆ EConvertFromTypeResult

Enumerator
UseSerializeItem 

No conversion was performed. Use SerializeItem to serialize the property value.

Serialized 

No conversion was performed. The property value was serialized. Skip SerializeItem.

CannotConvert 

No conversion is possible. Skip SerializeItem.

Converted 

Conversion of the property value was performed. Skip SerializeItem.

◆ EFieldIterationFlags

TFieldIterator construction flags

Enumerator
None 
IncludeSuper 
IncludeDeprecated 
IncludeInterfaces 
IncludeAll 
Default 

◆ EObjectPropertyOptions

Enumerator
None 
AllowNullValuesOnNonNullableProperty 

◆ EPropertyExportCPPFlags

Enumerator
CPPF_None 

Indicates that there are no special C++ export flags

CPPF_OptionalValue 

Indicates that we are exporting this property's CPP text for an optional parameter value

CPPF_ArgumentOrReturnValue 

Indicates that we are exporting this property's CPP text for an argument or return value

CPPF_Implementation 

Indicates thet we are exporting this property's CPP text for C++ definition of a function.

CPPF_CustomTypeName 

Indicates that we are exporting this property's CPP text with an custom type name

CPPF_NoConst 

No 'const' keyword

CPPF_NoRef 

No reference '&' sign

CPPF_NoStaticArray 

No static array [d]

CPPF_BlueprintCppBackend 

Blueprint compiler generated C++ code

CPPF_NoTObjectPtr 

Indicates to not use TObjectPtr but use USomething* instead

◆ EPropertyMemoryAccess

Enumerator
Direct 
InContainer 

◆ EPropertyPointerType

enum class EPropertyPointerType
strong

Type of pointer provided for property API functions

Enumerator
Direct 
Container 

Raw property access

◆ EPropertyValueIteratorFlags

FPropertyValueIterator construction flags

Enumerator
NoRecursion 
FullRecursion 

Function Documentation

◆ DECLARE_LOG_CATEGORY_EXTERN()

COREUOBJECT_API DECLARE_LOG_CATEGORY_EXTERN ( LogType  ,
Log  ,
All   
)

◆ ENUM_CLASS_FLAGS() [1/2]

ENUM_CLASS_FLAGS ( EFieldIterationFlags  )

◆ ENUM_CLASS_FLAGS() [2/2]

ENUM_CLASS_FLAGS ( EObjectPropertyOptions  )

◆ FindFieldChecked()

template<typename T >
T * FindFieldChecked ( const UStruct Scope,
FName  FieldName 
)

Search for the named field within the specified scope, including any Outer classes; assert on failure.

Parameters
Scopethe scope to search for the field in
FieldNamethe name of the field to search for.

◆ FindFProperty() [1/2]

template<UE::CDerivedFrom< FField > T>
T * FindFProperty ( const UStruct Owner,
const TCHAR FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)

◆ FindFProperty() [2/2]

template<UE::CDerivedFrom< FField > T>
T * FindFProperty ( const UStruct Owner,
FName  FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)

◆ FindUField() [1/2]

template<UE::CDerivedFrom< UField > T>
T * FindUField ( const UStruct Owner,
const TCHAR FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)

◆ FindUField() [2/2]

template<UE::CDerivedFrom< UField > T>
T * FindUField ( const UStruct Owner,
FName  FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)

◆ FindUFieldOrFProperty() [1/4]

FFieldVariant FindUFieldOrFProperty ( const UStruct Owner,
const TCHAR FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)
inline

Finds FProperties or UFunctions and UEnums

◆ FindUFieldOrFProperty() [2/4]

template<UE::CDerivedFrom< UField > T>
T * FindUFieldOrFProperty ( const UStruct Owner,
const TCHAR FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)

◆ FindUFieldOrFProperty() [3/4]

FFieldVariant FindUFieldOrFProperty ( const UStruct Owner,
FName  FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)
inline

Finds FProperties or UFunctions and UEnums

◆ FindUFieldOrFProperty() [4/4]

template<UE::CDerivedFrom< UField > T>
T * FindUFieldOrFProperty ( const UStruct Owner,
FName  FieldName,
EFieldIterationFlags  IterationFlags = EFieldIterationFlags::Default 
)

◆ GetChildFieldsFromStruct() [1/3]

template<class FieldType >
FieldType * GetChildFieldsFromStruct ( const UStruct Owner)

◆ GetChildFieldsFromStruct() [2/3]

template<>
UField * GetChildFieldsFromStruct ( const UStruct Owner)
inline

◆ GetChildFieldsFromStruct() [3/3]

template<>
FField * GetChildFieldsFromStruct ( const UStruct Owner)
inline