50template<
typename T, EPimplPtrMode Mode = EPimplPtrMode::NoCopy>
struct TPimplPtr;
71 static void* CopyFunc(
void*
A)
95 "Unexpected alignment of T within the pimpl object");
105 "Unexpected alignment of T within the pimpl object");
146 template <
typename, EPimplPtrMode>
friend struct TPimplPtr;
186 this->Ptr =
Other.Ptr;
294 Super::operator = (
A);
298 using Super::IsValid;
299 using Super::operator
bool;
300 using Super::operator ->;
302 using Super::operator *;
306#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
323 typename FHeapType::EDeepCopyType>::type;
326 std::is_copy_constructible<T>::value,
"T must be a copyable type, to use with EPimplPtrMode::DeepCopy");
327 static_assert(
sizeof(T) > 0,
"T must be a complete type");
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR, const TPimplPtr< T, Mode > &Ptr)
Definition PimplPtr.h:307
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR, const TPimplPtr< T, Mode > &Ptr)
Definition PimplPtr.h:308
EPimplPtrMode
Definition PimplPtr.h:41
TPimplPtr< T, Mode > MakePimpl(ArgTypes &&... Args)
Definition PimplPtr.h:319
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
#define STRUCT_OFFSET(struc, member)
Definition UnrealTemplate.h:218
Mode
Definition AnimNode_TransitionPoseEvaluator.h:28
Definition ExpressionParserTypes.h:21
void(*)(void *) FDeleteFunc
Definition PimplPtr.h:80
constexpr SIZE_T RequiredAlignment
Definition PimplPtr.h:55
void * CallCopier(void *Ptr)
Definition PimplPtr.h:132
void *(*)(void *) FCopyFunc
Definition PimplPtr.h:81
void DeleterFunc(void *Ptr)
Definition PimplPtr.h:62
void CallDeleter(void *Ptr)
Definition PimplPtr.h:121
TPimplPtr(TPimplPtr &&)=default
TPimplPtr & operator=(TYPE_OF_NULLPTR A)
Definition PimplPtr.h:292
TPimplPtr(const TPimplPtr &A)
Definition PimplPtr.h:259
TPimplPtr(TYPE_OF_NULLPTR)
Definition PimplPtr.h:288
TPimplPtr & operator=(TPimplPtr &&)=default
TPimplPtr & operator=(const TPimplPtr &A)
Definition PimplPtr.h:267
Definition PimplPtr.h:144
void Reset()
Definition PimplPtr.h:227
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR)
Definition PimplPtr.h:236
T * operator->() const
Definition PimplPtr.h:212
TPimplPtr(const TPimplPtr &)=delete
T * Get() const
Definition PimplPtr.h:217
~TPimplPtr()
Definition PimplPtr.h:163
T & operator*() const
Definition PimplPtr.h:222
TPimplPtr(TYPE_OF_NULLPTR)
Definition PimplPtr.h:159
TPimplPtr & operator=(TYPE_OF_NULLPTR)
Definition PimplPtr.h:196
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR)
Definition PimplPtr.h:237
TPimplPtr & operator=(TPimplPtr &&Other)
Definition PimplPtr.h:181
bool IsValid() const
Definition PimplPtr.h:202
TPimplPtr & operator=(const TPimplPtr &)=delete
TPimplPtr(TPimplPtr &&Other)
Definition PimplPtr.h:175
ENoCopyType
Definition PimplPtr.h:86
TPimplHeapObjectImpl(EDeepCopyType, ArgTypes &&... Args)
Definition PimplPtr.h:99
T Val
Definition PimplPtr.h:118
EDeepCopyType
Definition PimplPtr.h:87
TPimplHeapObjectImpl(ENoCopyType, ArgTypes &&... Args)
Definition PimplPtr.h:90
FDeleteFunc Deleter
Definition PimplPtr.h:115
FCopyFunc Copier
Definition PimplPtr.h:116
TPimplHeapObjectImpl(void *InVal)
Definition PimplPtr.h:108