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

#include <GPtr.h>

Public Types

using element_type = T
 

Public Member Functions

constexpr GPtr () noexcept
 
constexpr GPtr (std::nullptr_t) noexcept
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
 GPtr (Y *a_rhs)
 
 GPtr (const GPtr &a_rhs)
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
 GPtr (const GPtr< Y > &a_rhs)
 
 GPtr (GPtr &&a_rhs) noexcept
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
 GPtr (GPtr< Y > &&a_rhs) noexcept
 
 ~GPtr ()
 
GPtroperator= (const GPtr &a_rhs)
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
GPtroperator= (const GPtr< Y > &a_rhs)
 
GPtroperator= (GPtr &&a_rhs)
 
template<class Y , std::enable_if_t< std::is_convertible_v< Y *, element_type * >, int > = 0>
GPtroperator= (GPtr< 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 GPtr
 

Member Typedef Documentation

◆ element_type

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

Constructor & Destructor Documentation

◆ GPtr() [1/7]

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

◆ GPtr() [2/7]

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

◆ GPtr() [3/7]

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

◆ GPtr() [4/7]

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

◆ GPtr() [5/7]

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

◆ GPtr() [6/7]

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

◆ GPtr() [7/7]

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

◆ ~GPtr()

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

Member Function Documentation

◆ get()

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

◆ operator bool()

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

◆ operator*()

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

◆ operator->()

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

◆ operator=() [1/4]

template<class T >
GPtr& RE::GPtr< T >::operator= ( const GPtr< 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>
GPtr& RE::GPtr< T >::operator= ( const GPtr< Y > &  a_rhs)
inline

◆ operator=() [3/4]

template<class T >
GPtr& RE::GPtr< T >::operator= ( GPtr< 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>
GPtr& RE::GPtr< T >::operator= ( GPtr< Y > &&  a_rhs)
inline

◆ reset() [1/2]

template<class T >
void RE::GPtr< 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::GPtr< T >::reset ( Y *  a_ptr)
inline

◆ TryAttach()

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

◆ TryDetach()

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

Friends And Related Function Documentation

◆ GPtr

template<class T >
template<class >
friend class GPtr
friend

Member Data Documentation

◆ _ptr

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

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