5#if WITH_VERSE_VM || defined(__INTELLISENSE__)
17 static constexpr bool bIsVValue = std::is_same_v<T, VValue>;
19 using TValue =
typename std::conditional_t<bIsAux, T, typename std::conditional_t<bIsVValue, VValue, T*>>;
20 using TEncodedValue =
typename std::conditional<bIsVValue, uint64, T*>::type;
61 template <
typename U = T>
72 template <
typename TResult =
void>
73 std::enable_if_t<!bIsVValue, TResult>
Set(T& NewValue)
78 void Set(TValue NewValue)
101 template <
typename TResult = TValue>
102 std::enable_if_t<!bIsVValue && !bIsAux, TResult> operator->()
const {
return Get(); }
104 template <
typename TResult = T>
105 std::enable_if_t<!bIsVValue && !bIsAux, TResult&>
operator*()
const {
return *
Get(); }
107 explicit operator bool()
const {
return !!
Get(); }
116 std::atomic<TEncodedValue>* ValuePtr =
reinterpret_cast<std::atomic<TEncodedValue>*
>(&
Value);
123 if (!FHeap::IsMarked(
Cell))
125 return ValuePtr->compare_exchange_strong(
EncodedValueCopy, VValue().GetEncodedBits(), std::memory_order_relaxed);
133 return ValuePtr->compare_exchange_strong(
ValueCopy,
nullptr, std::memory_order_relaxed);
142 template <
typename ContextType>
145 if (FHeap::GetWeakBarrierState() == EWeakBarrierState::Inactive)
151 if (!FHeap::IsMarked(
Value.GetPtr()))
160 if (!FHeap::IsMarked(
Cell))
180 if (FHeap::IsMarked(
Value))
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
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
uint32 GetTypeHash(TPtrVariant< Ts... > Ptr)
Definition VVMPtrVariant.h:83