#include <Puma/SmartPtr.h>
template<class T>
class Puma::SmartPtr< T >
Template based smart pointer implementation. 
Classes must be derived from SmartPtr::RefCnt to be compatible with this implementation. Example:
  
};
Reference counter for objects used with SmartPtr.
Definition SmartPtr.h:44
Template based smart pointer implementation.
Definition SmartPtr.h:40
SmartPtr()
Construct an empty smart pointer.
Definition SmartPtr.h:59
  
|  | 
|  | SmartPtr () | 
|  | Construct an empty smart pointer. 
 | 
|  | 
|  | SmartPtr (const RefCnt *pointer) | 
|  | Construct a new smart pointer. 
 | 
|  | 
|  | SmartPtr (const SmartPtr ©) | 
|  | Copy a smart pointer. 
 | 
|  | 
|  | ~SmartPtr () | 
|  | Destroy the smart pointer. 
 | 
|  | 
| void | clear () | 
|  | Clear this smart pointer. 
 | 
|  | 
| bool | valid () const | 
|  | Check whether the smart pointer is valid. 
 | 
|  | 
| bool | operator== (const SmartPtr &other) const | 
|  | Compare this smart pointer with another smart pointer. 
 | 
|  | 
| SmartPtr & | operator= (const SmartPtr ©) | 
|  | Assign a new object to this smart pointer. 
 | 
|  | 
| SmartPtr & | operator= (const RefCnt *copy) | 
|  | Assign a new object to this smart pointer. 
 | 
|  | 
|  | operator bool () const | 
|  | Conversion operator to check whether the smart pointer is valid. 
 | 
|  | 
|  | operator T* () const | 
|  | Conversion operator for the managed object pointer type. 
 | 
|  | 
|  | operator const T * () const | 
|  | Conversion operator for the managed object pointer type. 
 | 
|  | 
| T * | operator-> () | 
|  | Dereference operator for the managed object pointer type. 
 | 
|  | 
| const T * | operator-> () const | 
|  | Dereference operator for the managed object pointer type. 
 | 
|  | 
| T * | operator* () | 
|  | Indirection operator for the managed object pointer type. 
 | 
|  | 
| const T * | operator* () const | 
|  | Indirection operator for the managed object pointer type. 
 | 
|  | 
◆ SmartPtr() [1/3]
Construct an empty smart pointer. 
 
 
◆ SmartPtr() [2/3]
Construct a new smart pointer. 
- Parameters
- 
  
    | pointer | A pointer to the object to manage. |  
 
 
 
◆ SmartPtr() [3/3]
Copy a smart pointer. 
Increases the reference count of the managed object. 
- Parameters
- 
  
    | copy | The smart pointer to copy. |  
 
 
 
◆ ~SmartPtr()
Destroy the smart pointer. 
If this was the last smart pointer referencing the managed object, the object is destroyed too. 
 
 
◆ clear()
Clear this smart pointer. 
If this was the last smart pointer referencing the managed object, the object is destroyed. 
 
 
◆ operator bool()
Conversion operator to check whether the smart pointer is valid. 
- Returns
- True if valid. 
 
 
◆ operator const T *()
Conversion operator for the managed object pointer type. 
- Returns
- A constant pointer to the managed object. 
 
 
◆ operator T*()
Conversion operator for the managed object pointer type. 
- Returns
- A pointer to the managed object. 
 
 
◆ operator*() [1/2]
Indirection operator for the managed object pointer type. 
- Returns
- A pointer to the managed object. 
 
 
◆ operator*() [2/2]
Indirection operator for the managed object pointer type. 
- Returns
- A constant pointer to the managed object. 
 
 
◆ operator->() [1/2]
Dereference operator for the managed object pointer type. 
- Returns
- A pointer to the managed object. 
 
 
◆ operator->() [2/2]
Dereference operator for the managed object pointer type. 
- Returns
- A constant pointer to the managed object. 
 
 
◆ operator=() [1/2]
Assign a new object to this smart pointer. 
If this smart pointer already points to an object, then this object might be destroyed if not referenced by another smart pointer. 
- Parameters
- 
  
    | copy | The smart pointer to copy. |  
 
- Returns
- A reference to this smart pointer. 
 
 
◆ operator=() [2/2]
Assign a new object to this smart pointer. 
If this smart pointer already points to an object, then this object might be destroyed if not referenced by another smart pointer. 
- Parameters
- 
  
    | copy | The smart pointer to copy. |  
 
- Returns
- A reference to this smart pointer. 
 
 
◆ operator==()
Compare this smart pointer with another smart pointer. 
- Parameters
- 
  
    | other | The smart pointer to compare with. |  
 
- Returns
- True if both smart pointers point to the same object. 
 
 
◆ valid()
Check whether the smart pointer is valid. 
A smart pointer is valid if the managed pointer isn't NULL. 
- Returns
- True if valid.