#include <scim_pointer.h>
Collaboration diagram for scim::Pointer< T >:
Public Member Functions | |
Constructors | |
Pointer (T *object=0) | |
Pointer (Pointer &src) | |
template<typename T1> | Pointer (const Pointer< T1 > &src) |
~Pointer () | |
Pointer & | operator= (T *object) |
Pointer & | operator= (const Pointer &src) |
template<typename T1> Pointer & | operator= (const Pointer< T1 > &src) |
Accessors | |
T & | operator * () const |
T * | operator-> () const |
operator T * () const | |
T * | get () const |
bool | null () const |
Returns true if the Pointer has no dumb pointer. | |
Methods | |
T * | release () |
void | reset (T *object=0) |
Friends | |
template<typename T1, typename T2> bool | operator== (const Pointer< T1 > &t1, const Pointer< T2 > &t2) |
Pointer is a standard auto_ptr-like smart pointer for managing heap allocated reference counted objects. T must be a class derived from scim::ReferencedObject.
|
Construct a new smart pointer. <
|
|
Copy constructor. < |
|
Copy constructor. < |
|
Destructor. < Decreases the object reference count. |
|
Assignment operator. <
|
|
Assignment operator. <
|
|
Assignment operator. < |
|
Dereference operator. <
|
|
Member selection operator. <
|
|
Conversion operator. < Converts a Pointer into its dumb pointer: the C pointer it manages. < Normally it is considered pretty evil to mix smart and regular pointers. < In scim you can safely if you just follow the reference counting rules < for each of them. You can never call delete on Pointer either because < you don't call delete on scim objects; you call unref(). |
|
Returns the dumb pointer; the regular C pointer managed by the Pointer. <
|
|
Returns true if the Pointer has no dumb pointer.
|
|
Releases the dumb pointer. <
|
|
Sets a new dumb pointer for the Pointer to manage. <
|
|
Compares two Pointers. <
|