Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
PimplPtr.h File Reference
+ Include dependency graph for PimplPtr.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  UE::Core::Private::PimplPtr::TPimplHeapObjectImpl< T >
 
struct  TPimplPtr< T, EPimplPtrMode::NoCopy >
 
struct  TPimplPtr< T, EPimplPtrMode::DeepCopy >
 

Namespaces

namespace  UE
 
namespace  UE::Core
 
namespace  UE::Core::Private
 
namespace  UE::Core::Private::PimplPtr
 

Typedefs

using UE::Core::Private::PimplPtr::FDeleteFunc = void(*)(void*)
 
using UE::Core::Private::PimplPtr::FCopyFunc = void*(*)(void*)
 

Enumerations

enum class  EPimplPtrMode : uint8 { NoCopy = 0x0 , DeepCopy = 0x1 , NoCopy , DeepCopy }
 

Functions

template<typename T >
void UE::Core::Private::PimplPtr::DeleterFunc (void *Ptr)
 
template<typename T >
static voidUE::Core::Private::PimplPtr::CopyFunc (void *A)
 
FORCEINLINE void UE::Core::Private::PimplPtr::CallDeleter (void *Ptr)
 
FORCEINLINE voidUE::Core::Private::PimplPtr::CallCopier (void *Ptr)
 
template<typename T , EPimplPtrMode Mode>
FORCEINLINE bool operator== (TYPE_OF_NULLPTR, const TPimplPtr< T, Mode > &Ptr)
 
template<typename T , EPimplPtrMode Mode>
FORCEINLINE bool operator!= (TYPE_OF_NULLPTR, const TPimplPtr< T, Mode > &Ptr)
 
template<typename T , EPimplPtrMode Mode = EPimplPtrMode::NoCopy, typename... ArgTypes>
FORCEINLINE TPimplPtr< T, Mode > MakePimpl (ArgTypes &&... Args)
 

Variables

constexpr SIZE_T UE::Core::Private::PimplPtr::RequiredAlignment = 16
 

Enumeration Type Documentation

◆ EPimplPtrMode

Specifies the copy mode for TPimplPtr

Enumerator
NoCopy 
DeepCopy 
NoCopy 

Don't support copying (default)

DeepCopy 

Support deep copying, including of forward declared types

Definition at line 40 of file PimplPtr.h.

Function Documentation

◆ MakePimpl()

template<typename T , EPimplPtrMode Mode = EPimplPtrMode::NoCopy, typename... ArgTypes>
FORCEINLINE TPimplPtr< T, Mode > MakePimpl ( ArgTypes &&... Args)

Heap-allocates an instance of T with the given arguments and returns it as a TPimplPtr.

Usage: TPimplPtr<FMyType> MyPtr = MakePimpl<FMyType>(...arguments...);

DeepCopy Usage: TPimplPtr<FMyType, EPimplPtrMode::DeepCopy> MyPtr = MakePimpl<FMyType, EPimplPtrMode::DeepCopy>(...arguments...);

Definition at line 319 of file PimplPtr.h.

◆ operator!=()

template<typename T , EPimplPtrMode Mode>
FORCEINLINE bool operator!= ( TYPE_OF_NULLPTR ,
const TPimplPtr< T, Mode > & Ptr )

Definition at line 308 of file PimplPtr.h.

◆ operator==()

template<typename T , EPimplPtrMode Mode>
FORCEINLINE bool operator== ( TYPE_OF_NULLPTR ,
const TPimplPtr< T, Mode > & Ptr )

Definition at line 307 of file PimplPtr.h.