19struct FSourcePropertyValue;
20struct FIntermediatePropertyValue;
21struct FIntermediatePropertyValueConstRef;
36 virtual const void*
Get()
const = 0;
63 const void*
Get()
const override
87 const void*
Get()
const override
112 const void*
Get()
const override
151 return Value.IsValid();
192 return Value.IsValid() ? Value->Get() :
nullptr;
203 const T* Address =
static_cast<const T*
>(
Get());
205 check(!Address || Value->SizeofT ==
sizeof(T));
232 template<
typename T,
typename = std::enable_if_t<!std::is_same_v<T,
void>>>
234 :
Value(
Private::TTypeErasedPropertyPtrImpl<const T>(Ptr))
287 const T* Address =
static_cast<const T*
>(
Get());
349 template<
typename T,
typename = std::enable_if_t<!std::is_same_v<T,
void>>>
378 return const_cast<void*
>(
Value->Get());
391 T* Address =
static_cast<T*
>(
Get());
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition UnrealType.h:174
Definition InlineValue.h:22
Definition OverriddenPropertySet.cpp:45
Definition ConstraintsManager.h:14
UE::Core::Private::Decay::TDecayNonReference< typenameTRemoveReference< T >::Type >::Type Type
Definition Decay.h:45
Definition MovieSceneIntermediatePropertyValue.h:131
const T * Cast() const
Definition MovieSceneIntermediatePropertyValue.h:201
FSourcePropertyValue()
Definition MovieSceneIntermediatePropertyValue.h:135
static FSourcePropertyValue FromAddress(const void *Ptr, const FProperty &Property)
Definition MovieSceneIntermediatePropertyValue.h:161
static FSourcePropertyValue FromValue(T &&Value)
Definition MovieSceneIntermediatePropertyValue.h:178
const void * Get() const
Definition MovieSceneIntermediatePropertyValue.h:190
FSourcePropertyValue & operator=(FSourcePropertyValue &&)=default
FSourcePropertyValue(FSourcePropertyValue &&)=default
Definition MovieSceneIntermediatePropertyValue.h:57
FTypeErasedConstPropertyPtrBase(const void *In, int32 InSize)
Definition MovieSceneIntermediatePropertyValue.h:58
const void * Get() const override
Definition MovieSceneIntermediatePropertyValue.h:63
const void * Value
Definition MovieSceneIntermediatePropertyValue.h:68
Definition MovieSceneIntermediatePropertyValue.h:29
int32 SizeofT
Definition MovieSceneIntermediatePropertyValue.h:30
virtual ~ITypeErasedPropertyConstValueImpl()
Definition MovieSceneIntermediatePropertyValue.h:32
virtual const void * Get() const =0
Definition MovieSceneIntermediatePropertyValue.h:44
virtual ~ITypeErasedPropertyValueImpl()
Definition MovieSceneIntermediatePropertyValue.h:45
virtual TInlineValue< ITypeErasedPropertyValueImpl > Copy() const =0
Definition MovieSceneIntermediatePropertyValue.h:100
TInlineValue< ITypeErasedPropertyValueImpl > Copy() const override
Definition MovieSceneIntermediatePropertyValue.h:106
const void * Get() const override
Definition MovieSceneIntermediatePropertyValue.h:112
T * Value
Definition MovieSceneIntermediatePropertyValue.h:117
TTypeErasedPropertyPtrImpl(T *In)
Definition MovieSceneIntermediatePropertyValue.h:101
Definition MovieSceneIntermediatePropertyValue.h:76
TTypeErasedPropertyValueImpl(U &&In)
Definition MovieSceneIntermediatePropertyValue.h:78
TInlineValue< ITypeErasedPropertyValueImpl > Copy() const override
Definition MovieSceneIntermediatePropertyValue.h:83
const void * Get() const override
Definition MovieSceneIntermediatePropertyValue.h:87