XLE  v0.02.0
Public Types | Public Member Functions | Friends | List of all members
Utility::intrusive_ptr Class Reference

Standard intrusive pointer object More...

#include <IntrusivePtr.h>

Public Types

typedef T element_type
 

Public Member Functions

 intrusive_ptr (T *copyOrMoveFrom, bool takeNewReference=true)
 
 intrusive_ptr (MovePTRHelper< T > moveFrom) never_throws
 
 intrusive_ptr (const intrusive_ptr &copyFrom)
 
 intrusive_ptr (intrusive_ptr &&moveFrom) never_throws
 
template<typename Y >
 intrusive_ptr (const intrusive_ptr< Y > &copyFrom)
 
template<typename Y >
 intrusive_ptr (intrusive_ptr< Y > &&moveFrom) never_throws
 
intrusive_ptroperator= (const intrusive_ptr &copyFrom)
 
template<typename Y >
intrusive_ptroperator= (const intrusive_ptr< Y > &copyFrom)
 
intrusive_ptroperator= (T *copyFrom)
 
intrusive_ptroperator= (MovePTRHelper< T > moveFrom) never_throws
 
intrusive_ptroperator= (intrusive_ptr &&moveFrom) never_throws
 
template<typename Y >
intrusive_ptroperator= (intrusive_ptr< Y > &&moveFrom) never_throws
 
void reset ()
 
void reset (T *copyFrom)
 
T & operator* () const never_throws
 
T * operator-> () const never_throws
 
T * get () const never_throws
 
 operator bool () const never_throws
 
void swap (intrusive_ptr &b) never_throws
 
template<typename Y >
templ intrusive_ptr (const intrusive_ptr< Y > &copyFrom)
 
template<typename Y >
templ intrusive_ptr (intrusive_ptr< Y > &&moveFrom) never_throws
 
template<typename Y >
templ intrusive_ptr< T > & operator= (const intrusive_ptr< Y > &copyFrom)
 
template<typename Y >
templ intrusive_ptr< T > & operator= (intrusive_ptr< Y > &&moveFrom) never_throws
 

Friends

template<typename T >
T * ReleaseOwnership (intrusive_ptr< T > &ptr)
 
template<typename T , typename U >
bool operator== (const intrusive_ptr< T > &lhs, const intrusive_ptr< U > &rhs) never_throws
 
template<typename T , typename U >
bool operator!= (const intrusive_ptr< T > &lhs, const intrusive_ptr< U > &rhs) never_throws
 
template<typename T >
bool operator== (const intrusive_ptr< T > &a, T *b) never_throws
 
template<typename T >
bool operator!= (const intrusive_ptr< T > &a, T *b) never_throws
 
template<typename T >
bool operator== (T *a, const intrusive_ptr< T > &b) never_throws
 
template<typename T >
bool operator!= (T *a, const intrusive_ptr< T > &b) never_throws
 
template<typename T , typename U >
bool operator< (const intrusive_ptr< T > &a, const intrusive_ptr< U > &b) never_throws
 

Detailed Description

Standard intrusive pointer object

Intrusive pointer implementation. based on standard designs (names kept similar to boost::intrusive_ptr intentially). Useful for interacting with 3rd party code (like D3D), or legacy code. Prefer to use std::shared_ptr<> where possible.


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