CommonLibSSE (Parapets fork)
RE::hkRefPtr< T > Class Template Reference

#include <hkRefPtr.h>

Public Types

using element_type = T
 

Public Member Functions

constexpr hkRefPtr () noexcept
 
constexpr hkRefPtr (std::nullptr_t) noexcept
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
 hkRefPtr (Y *a_rhs)
 
 hkRefPtr (const hkRefPtr &a_rhs)
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
 hkRefPtr (const hkRefPtr< Y > &a_rhs)
 
 hkRefPtr (hkRefPtr &&a_rhs) noexcept
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
 hkRefPtr (hkRefPtr< Y > &&a_rhs) noexcept
 
 ~hkRefPtr ()
 
hkRefPtroperator= (const hkRefPtr &a_rhs)
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
hkRefPtroperator= (const hkRefPtr< Y > &a_rhs)
 
hkRefPtroperator= (hkRefPtr &&a_rhs)
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
hkRefPtroperator= (hkRefPtr< Y > &&a_rhs)
 
void reset ()
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
void reset (Y *a_ptr)
 
constexpr element_typeget () const noexcept
 
constexpr operator bool () const noexcept
 
constexpr element_typeoperator* () const noexcept
 
constexpr element_typeoperator-> () const noexcept
 

Protected Member Functions

void TryAttach ()
 
void TryDetach ()
 

Protected Attributes

element_type_ptr
 

Friends

template<class >
class hkRefPtr
 

Member Typedef Documentation

◆ element_type

template<class T >
using RE::hkRefPtr< T >::element_type = T

Constructor & Destructor Documentation

◆ hkRefPtr() [1/7]

template<class T >
constexpr RE::hkRefPtr< T >::hkRefPtr ( )
inlineconstexprnoexcept

◆ hkRefPtr() [2/7]

template<class T >
constexpr RE::hkRefPtr< T >::hkRefPtr ( std::nullptr_t  )
inlineconstexprnoexcept

◆ hkRefPtr() [3/7]

template<class T >
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
RE::hkRefPtr< T >::hkRefPtr ( Y *  a_rhs)
inlineexplicit

◆ hkRefPtr() [4/7]

template<class T >
RE::hkRefPtr< T >::hkRefPtr ( const hkRefPtr< T > &  a_rhs)
inline

◆ hkRefPtr() [5/7]

template<class T >
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
RE::hkRefPtr< T >::hkRefPtr ( const hkRefPtr< Y > &  a_rhs)
inline

◆ hkRefPtr() [6/7]

template<class T >
RE::hkRefPtr< T >::hkRefPtr ( hkRefPtr< T > &&  a_rhs)
inlinenoexcept

◆ hkRefPtr() [7/7]

template<class T >
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
RE::hkRefPtr< T >::hkRefPtr ( hkRefPtr< Y > &&  a_rhs)
inlinenoexcept

◆ ~hkRefPtr()

template<class T >
RE::hkRefPtr< T >::~hkRefPtr ( )
inline

Member Function Documentation

◆ get()

template<class T >
constexpr element_type* RE::hkRefPtr< T >::get ( ) const
inlineconstexprnoexcept

◆ operator bool()

template<class T >
constexpr RE::hkRefPtr< T >::operator bool ( ) const
inlineexplicitconstexprnoexcept

◆ operator*()

template<class T >
constexpr element_type& RE::hkRefPtr< T >::operator* ( ) const
inlineconstexprnoexcept

◆ operator->()

template<class T >
constexpr element_type* RE::hkRefPtr< T >::operator-> ( ) const
inlineconstexprnoexcept

◆ operator=() [1/4]

template<class T >
hkRefPtr& RE::hkRefPtr< T >::operator= ( const hkRefPtr< T > &  a_rhs)
inline

◆ operator=() [2/4]

template<class T >
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
hkRefPtr& RE::hkRefPtr< T >::operator= ( const hkRefPtr< Y > &  a_rhs)
inline

◆ operator=() [3/4]

template<class T >
hkRefPtr& RE::hkRefPtr< T >::operator= ( hkRefPtr< T > &&  a_rhs)
inline

◆ operator=() [4/4]

template<class T >
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
hkRefPtr& RE::hkRefPtr< T >::operator= ( hkRefPtr< Y > &&  a_rhs)
inline

◆ reset() [1/2]

template<class T >
void RE::hkRefPtr< T >::reset ( )
inline

◆ reset() [2/2]

template<class T >
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
void RE::hkRefPtr< T >::reset ( Y *  a_ptr)
inline

◆ TryAttach()

template<class T >
void RE::hkRefPtr< T >::TryAttach ( )
inlineprotected

◆ TryDetach()

template<class T >
void RE::hkRefPtr< T >::TryDetach ( )
inlineprotected

Friends And Related Function Documentation

◆ hkRefPtr

template<class T >
template<class >
friend class hkRefPtr
friend

Member Data Documentation

◆ _ptr

template<class T >
element_type* RE::hkRefPtr< T >::_ptr
protected

The documentation for this class was generated from the following file: