Polyphase Game Engine
Loading...
Searching...
No Matches
SmartPointer.h File Reference
#include <vector>
#include <type_traits>
#include <stdint.h>
#include "Assertion.h"
#include "PolyphaseAPI.h"

Go to the source code of this file.

Classes

struct  IsNodeType< U, typename >
 
struct  IsNodeType< U, std::void_t< decltype(std::declval< U >().IsDestroyed())> >
 
struct  RefCount< T >
 
class  SharedPtr< T >
 
class  WeakPtr< T >
 

Namespaces

namespace  std
 

Typedefs

typedef SharedPtr< NodeNodePtr
 
typedef WeakPtr< NodeNodePtrWeak
 

Functions

POLYPHASE_API void MakeNodeUserdataStrong (Node *node)
 
POLYPHASE_API void MakeNodeUserdataWeak (Node *node)
 
template<typename T >
SharedPtr< T > MakeShared ()
 
template<typename T , typename U >
SharedPtr< T > PtrStaticCast (const SharedPtr< U > &src)
 
template<typename T , typename U >
WeakPtr< T > PtrStaticCast (const WeakPtr< U > &src)
 
template<typename T , typename U >
SharedPtr< T > PtrDynamicCast (const SharedPtr< U > &src)
 
template<typename T , typename U >
WeakPtr< T > PtrDynamicCast (const WeakPtr< U > &src)
 

Typedef Documentation

◆ NodePtr

◆ NodePtrWeak

Function Documentation

◆ MakeNodeUserdataStrong()

POLYPHASE_API void MakeNodeUserdataStrong ( Node node)

◆ MakeNodeUserdataWeak()

POLYPHASE_API void MakeNodeUserdataWeak ( Node node)

◆ MakeShared()

template<typename T >
SharedPtr< T > MakeShared ( )

◆ PtrDynamicCast() [1/2]

template<typename T , typename U >
SharedPtr< T > PtrDynamicCast ( const SharedPtr< U > &  src)

◆ PtrDynamicCast() [2/2]

template<typename T , typename U >
WeakPtr< T > PtrDynamicCast ( const WeakPtr< U > &  src)

◆ PtrStaticCast() [1/2]

template<typename T , typename U >
SharedPtr< T > PtrStaticCast ( const SharedPtr< U > &  src)

◆ PtrStaticCast() [2/2]

template<typename T , typename U >
WeakPtr< T > PtrStaticCast ( const WeakPtr< U > &  src)