UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VVMVerseEnum.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
8#include "UObject/Class.h"
9#include "UObject/Package.h"
10#if WITH_VERSE_VM || defined(__INTELLISENSE__)
12#endif
15
16#include "VVMVerseEnum.generated.h"
17
19struct FVniTypeDesc;
20namespace uLang
21{
22class CEnumeration;
23}
24
27{
28 None = 0x00000000u,
29 NativeBound = 0x00000001u,
30 UHTNative = 0x00000002u,
31};
33
34UCLASS(MinimalAPI)
36{
38public:
40
41#if UE_WITH_CONSTINIT_UOBJECT
42 consteval UVerseEnum(
43 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
44 UE::CodeGen::ConstInit::FUFieldParams UFieldParams,
45 UE::CodeGen::ConstInit::FEnumParams EnumParams,
46 UE::CodeGen::ConstInit::FVerseEnumParams InEnumParams)
47 : Super(ObjectParams, UFieldParams, EnumParams)
49 , VerseEnumFlags(EVerseEnumFlags::UHTNative)
50 , QualifiedName(ConstEval)
51 {
52 }
53#endif
54
55#if UE_WITH_CONSTINIT_UOBJECT
56 // CONSTINIT_UOBJECT_TODO: Size increase
57 const UTF8CHAR* CompiledInQualifiedName = nullptr;
58#endif // UE_WITH_CONSTINIT_UOBJECT
59
60 UPROPERTY()
62
63 UPROPERTY()
64 FUtf8String QualifiedName;
65
66 // UObject interface.
69
70 bool IsNativeBound() const { return EnumHasAnyFlags(VerseEnumFlags, EVerseEnumFlags::NativeBound); }
71 bool IsUHTNative() const { return EnumHasAnyFlags(VerseEnumFlags, EVerseEnumFlags::UHTNative); }
72
73 void SetNativeBound() { VerseEnumFlags |= EVerseEnumFlags::NativeBound; }
74
75#if WITH_VERSE_VM || defined(__INTELLISENSE__)
76 Verse::TWriteBarrier<Verse::VEnumeration> Enumeration;
77#endif
78
80 {
81 return NativeTypeDesc;
82 }
84
85private:
86#if WITH_EDITORONLY_DATA
87 UPROPERTY()
89#endif // WITH_EDITORONLY_DATA
90
91 const FVniTypeDesc* NativeTypeDesc{nullptr};
92};
93
95UENUM()
97{
98 Value // UHT doesn't correctly support empty enums, so we need a dummy case to make it compile.
99};
100
102UENUM()
104{
105 Value // UHT errors if this is called "False".
106};
@ ConstEval
Definition CoreMiscDefines.h:161
FPlatformTypes::UTF8CHAR UTF8CHAR
An 8-bit character containing a UTF8 (Unicode, 8-bit, variable-width) code unit.
Definition Platform.h:1137
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
EVerseFalse
Definition VVMVerseEnum.h:97
EVerseEnumFlags
Definition VVMVerseEnum.h:27
EVerseTrue
Definition VVMVerseEnum.h:104
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition UObjectGlobals.h:1292
Definition ObjectSaveContext.h:244
Definition CookedMetaData.h:125
Definition Class.h:2791
Definition VVMVerseEnum.h:36
void SetNativeTypeDesc(const FVniTypeDesc *InNativeTypeDesc)
Definition VVMVerseEnum.h:83
void SetNativeBound()
Definition VVMVerseEnum.h:73
bool IsUHTNative() const
Definition VVMVerseEnum.h:71
const FVniTypeDesc * GetNativeTypeDesc()
Definition VVMVerseEnum.h:79
Definition VVMEngineEnvironment.h:23
Definition VVMVerseNativeTypeDesc.h:31
Definition ObjectPtr.h:488