Empirical
Classes | Public Types | Public Member Functions | List of all members
emp::Ptr< TYPE > Class Template Reference

#include <Ptr.h>

Classes

struct  hash_t
 

Public Types

using element_type = TYPE
 

Public Member Functions

 Ptr ()
 Default constructor. More...
 
 Ptr (const Ptr< TYPE > &_in)
 Copy constructor. More...
 
 Ptr (Ptr< TYPE > &&_in)
 Move constructor. More...
 
template<typename T2 >
 Ptr (T2 *in_ptr, bool=false)
 Construct from raw ptr. More...
 
template<typename T2 >
 Ptr (T2 *_ptr, size_t, bool)
 Construct from array. More...
 
template<typename T2 >
 Ptr (Ptr< T2 > _in)
 From compatible Ptr. More...
 
 Ptr (std::nullptr_t)
 From nullptr. More...
 
 ~Ptr ()
 Destructor. More...
 
bool IsNull () const
 
TYPE * Raw ()
 
const TYPE *const Raw () const
 
template<typename T2 >
Ptr< T2 > Cast ()
 
template<typename T2 >
const Ptr< const T2 > Cast () const
 
template<typename T2 >
Ptr< T2 > DynamicCast ()
 
template<typename... T>
void New (T &&...args)
 
void NewArray (size_t array_size)
 
void Delete ()
 
void DeleteArray ()
 
size_t Hash () const
 
Ptr< TYPE > & operator= (const Ptr< TYPE > &_in)
 
Ptr< TYPE > & operator= (Ptr< TYPE > &&_in)
 
template<typename T2 >
Ptr< TYPE > & operator= (T2 *_in)
 
template<typename T2 >
Ptr< TYPE > & operator= (Ptr< T2 > _in)
 
TYPE & operator* ()
 
const TYPE & operator* () const
 
TYPE * operator-> ()
 
TYPE *const operator-> () const
 
TYPE & operator[] (size_t pos)
 
const TYPE & operator[] (size_t pos) const
 
 operator TYPE * ()
 
 operator bool ()
 
 operator bool () const
 
bool operator== (const Ptr< TYPE > &in_ptr) const
 
bool operator!= (const Ptr< TYPE > &in_ptr) const
 
bool operator< (const Ptr< TYPE > &in_ptr) const
 
bool operator<= (const Ptr< TYPE > &in_ptr) const
 
bool operator> (const Ptr< TYPE > &in_ptr) const
 
bool operator>= (const Ptr< TYPE > &in_ptr) const
 
bool operator== (const TYPE *in_ptr) const
 
bool operator!= (const TYPE *in_ptr) const
 
bool operator< (const TYPE *in_ptr) const
 
bool operator<= (const TYPE *in_ptr) const
 
bool operator> (const TYPE *in_ptr) const
 
bool operator>= (const TYPE *in_ptr) const
 
int DebugGetCount () const
 
bool DebugIsArray () const
 
size_t DebugGetArrayBytes () const
 
bool DebugIsActive () const
 
bool OK () const
 

Member Typedef Documentation

template<typename TYPE>
using emp::Ptr< TYPE >::element_type = TYPE

Constructor & Destructor Documentation

template<typename TYPE>
emp::Ptr< TYPE >::Ptr ( )
inline

Default constructor.

template<typename TYPE>
emp::Ptr< TYPE >::Ptr ( const Ptr< TYPE > &  _in)
inline

Copy constructor.

template<typename TYPE>
emp::Ptr< TYPE >::Ptr ( Ptr< TYPE > &&  _in)
inline

Move constructor.

template<typename TYPE>
template<typename T2 >
emp::Ptr< TYPE >::Ptr ( T2 *  in_ptr,
bool  = false 
)
inline

Construct from raw ptr.

template<typename TYPE>
template<typename T2 >
emp::Ptr< TYPE >::Ptr ( T2 *  _ptr,
size_t  ,
bool   
)
inline

Construct from array.

template<typename TYPE>
template<typename T2 >
emp::Ptr< TYPE >::Ptr ( Ptr< T2 >  _in)
inline

From compatible Ptr.

template<typename TYPE>
emp::Ptr< TYPE >::Ptr ( std::nullptr_t  )
inline

From nullptr.

template<typename TYPE>
emp::Ptr< TYPE >::~Ptr ( )
inline

Destructor.

Member Function Documentation

template<typename TYPE>
template<typename T2 >
Ptr<T2> emp::Ptr< TYPE >::Cast ( )
inline
template<typename TYPE>
template<typename T2 >
const Ptr<const T2> emp::Ptr< TYPE >::Cast ( ) const
inline
template<typename TYPE>
size_t emp::Ptr< TYPE >::DebugGetArrayBytes ( ) const
inline
template<typename TYPE>
int emp::Ptr< TYPE >::DebugGetCount ( ) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::DebugIsActive ( ) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::DebugIsArray ( ) const
inline
template<typename TYPE>
void emp::Ptr< TYPE >::Delete ( )
inline
template<typename TYPE>
void emp::Ptr< TYPE >::DeleteArray ( )
inline
template<typename TYPE>
template<typename T2 >
Ptr<T2> emp::Ptr< TYPE >::DynamicCast ( )
inline
template<typename TYPE>
size_t emp::Ptr< TYPE >::Hash ( ) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::IsNull ( ) const
inline
template<typename TYPE>
template<typename... T>
void emp::Ptr< TYPE >::New ( T &&...  args)
inline
template<typename TYPE>
void emp::Ptr< TYPE >::NewArray ( size_t  array_size)
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::OK ( ) const
inline
template<typename TYPE>
emp::Ptr< TYPE >::operator bool ( )
inline
template<typename TYPE>
emp::Ptr< TYPE >::operator bool ( ) const
inline
template<typename TYPE>
emp::Ptr< TYPE >::operator TYPE * ( )
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator!= ( const Ptr< TYPE > &  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator!= ( const TYPE *  in_ptr) const
inline
template<typename TYPE>
TYPE& emp::Ptr< TYPE >::operator* ( )
inline
template<typename TYPE>
const TYPE& emp::Ptr< TYPE >::operator* ( ) const
inline
template<typename TYPE>
TYPE* emp::Ptr< TYPE >::operator-> ( )
inline
template<typename TYPE>
TYPE* const emp::Ptr< TYPE >::operator-> ( ) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator< ( const Ptr< TYPE > &  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator< ( const TYPE *  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator<= ( const Ptr< TYPE > &  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator<= ( const TYPE *  in_ptr) const
inline
template<typename TYPE>
Ptr<TYPE>& emp::Ptr< TYPE >::operator= ( const Ptr< TYPE > &  _in)
inline
template<typename TYPE>
Ptr<TYPE>& emp::Ptr< TYPE >::operator= ( Ptr< TYPE > &&  _in)
inline
template<typename TYPE>
template<typename T2 >
Ptr<TYPE>& emp::Ptr< TYPE >::operator= ( T2 *  _in)
inline
template<typename TYPE>
template<typename T2 >
Ptr<TYPE>& emp::Ptr< TYPE >::operator= ( Ptr< T2 >  _in)
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator== ( const Ptr< TYPE > &  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator== ( const TYPE *  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator> ( const Ptr< TYPE > &  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator> ( const TYPE *  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator>= ( const Ptr< TYPE > &  in_ptr) const
inline
template<typename TYPE>
bool emp::Ptr< TYPE >::operator>= ( const TYPE *  in_ptr) const
inline
template<typename TYPE>
TYPE& emp::Ptr< TYPE >::operator[] ( size_t  pos)
inline
template<typename TYPE>
const TYPE& emp::Ptr< TYPE >::operator[] ( size_t  pos) const
inline
template<typename TYPE>
TYPE* emp::Ptr< TYPE >::Raw ( )
inline
template<typename TYPE>
const TYPE* const emp::Ptr< TYPE >::Raw ( ) const
inline

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