5#if WITH_VERSE_VM || defined(__INTELLISENSE__)
29 static constexpr bool bIsVValue = std::is_same_v<T, VValue> || std::is_same_v<T, VInt>;
31 using TValue =
typename std::conditional_t<bIsVValue || bIsAux, T, T*>;
32 using TConstValue =
typename std::conditional_t<bIsVValue || bIsAux, T, const T*>;
33 using TEncodedValue =
typename std::conditional<bIsVValue, uint64, T*>::type;
91 std::enable_if_t<!bIsVValue && std::is_convertible_v<U*, T*>>* =
nullptr>
111 template <
bool bTransactional,
typename TContext>
114 if constexpr (bTransactional)
130 template <
typename TResult =
void>
138 template <
typename TResult =
void>
141 template <
bool bTransactional,
typename TContext,
typename TArg>
144 if constexpr (bTransactional)
156 template <
typename TResult =
void>
164 template <
typename TResult =
void>
167 template <
typename TResult =
void>
170 TValue
Get()
const {
return Value; }
171 template <
typename TResult = TValue>
172 std::enable_if_t<bIsVValue, TResult>
Follow()
const {
return Get().Follow(); }
177 template <
typename TResult = TValue>
178 std::enable_if_t<!bIsVValue && !bIsAux, TResult> operator->()
const {
return Value; }
180 template <
typename TResult = T>
181 std::enable_if_t<!bIsVValue && !bIsAux, TResult&>
operator*()
const {
return *
Value; }
183 explicit operator bool()
const {
return !!
Value; }
205 template <
typename ContextType>
208 if (!FHeap::IsMarking())
216 if (!FHeap::IsMarked(
Value.GetPtr()))
225 if (!FHeap::IsMarked(
Cell))
235 Object->VerseMarkAsReachable();
251template <
typename TArg>
255template <
class VCellType>
258 if constexpr (Verse::TWriteBarrier<VCellType>::bIsAux)
260 static_assert(!Verse::TWriteBarrier<VCellType>::bIsAux,
"AddReferencedVerseValue: Element must be a VValue or a type derived from VCell");
262 else if constexpr (Verse::TWriteBarrier<VCellType>::bIsVValue)
265 if (Verse::VCell*
Cell =
Value.ExtractCell())
#define checkSlow(expr)
Definition AssertionMacros.h:332
UE_FORCEINLINE_HINT FLinearColor operator*(float Scalar, const FLinearColor &Color)
Definition Color.h:473
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
void Move(T &A, typename TMoveSupportTraits< T >::Copy B)
Definition UnrealTemplate.h:24
Definition UnrealType.h:174
virtual void HandleObjectReference(UObject *&InObject, const UObject *InReferencingObject, const FProperty *InReferencingProperty)=0
uint32 GetTypeHash(const FKey &Key)
Definition BlackboardKey.h:35
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
bool GIsIncrementalReachabilityPending
Definition GarbageCollection.cpp:620