#include <ptr.hh>
Inheritance diagram for lestes::std::ptr< T >:

Public Types | |
| typedef T | pointee_type |
| the type pointed to | |
Public Member Functions | |
| ptr (void) | |
| Creates ptr, initializes with NULL pointer. | |
| ptr (T *a_pointer) | |
| Creates ptr, initializes with pointer . | |
| template<typename U> | |
| ptr (U *a_pointer) | |
| Creates ptr, initializes with pointer . | |
| ptr (const ptr< T > &other) | |
| Creates ptr, initializes with ptr to the same type. | |
| template<typename U> | |
| ptr (const ptr< U > &other) | |
| Creates ptr, initializes with ptr. | |
| template<typename U> | |
| ptr (const srp< U > &other) | |
| Creates ptr, initializes with srp. | |
| ~ptr (void) | |
| Destroys ptr. | |
| T * | operator-> (void) const |
| Returns the pointer. | |
| T & | operator * (void) const |
| Returns dereferenced pointer. | |
| ptr< T > & | operator= (T *a_pointer) |
| Assigns a pointer. | |
| template<typename U> | |
| ptr< T > & | operator= (U *a_pointer) |
| Assigns a pointer. | |
| ptr< T > & | operator= (const ptr< T > &other) |
| Assigns ptr of the same type. | |
| template<typename U> | |
| ptr< T > & | operator= (const ptr< U > &other) |
| Assigns ptr. | |
| template<typename U> | |
| ptr< T > & | operator= (const srp< U > &other) |
| Assigns srp. | |
| operator condition * (void) const | |
| Tests NULL pointer. | |
| bool | operator! (void) const |
| Tests non NULL pointer. | |
| bool | operator== (T *a_pointer) const |
| Compares to pointer. | |
| template<typename U> | |
| bool | operator== (U *a_pointer) const |
| Compares to pointer. | |
| bool | operator== (::std::ptrdiff_t a_pointer) const |
| Compares to NULL. | |
| template<typename U> | |
| bool | operator== (const ptr< U > &other) const |
| Compares to ptr. | |
| template<typename U> | |
| bool | operator== (const srp< U > &other) const |
| Compares to srp. | |
| bool | operator!= (T *a_pointer) const |
| Compares to pointer. | |
| template<typename U> | |
| bool | operator!= (U *a_pointer) const |
| Compares to pointer. | |
| bool | operator!= (::std::ptrdiff_t a_pointer) const |
| Compares to NULL. | |
| template<typename U> | |
| bool | operator!= (const ptr< U > &other) const |
| Compares to ptr. | |
| template<typename U> | |
| bool | operator!= (const srp< U > &other) const |
| Compares to srp. | |
| template<typename U> | |
| ptr< U > | dncast (void) const |
| Performs dynamic cast to other type. | |
| T * | pointer_get (void) const |
| Returns the pointer. | |
| bool | operator< (const ptr< T > &) const |
| Compares two pointers for ordering. | |
Private Member Functions | |
| void | pointer_set (T *a_pointer) |
| Sets the pointer. | |
Classes | |
| struct | condition |
| Condition class. More... | |
| T | The type of object pointed to. |
Definition at line 53 of file ptr.hh.
| typedef T lestes::std::ptr< T >::pointee_type |
| lestes::std::ptr< T >::ptr | ( | void | ) | [inline] |
Creates ptr, initializes with NULL pointer.
Creates ptr, initializes with NULL pointer.
Definition at line 75 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_set().
00075 : 00076 root_pointer() 00077 { 00078 pointer_set(NULL); 00079 }
| lestes::std::ptr< T >::ptr | ( | T * | a_pointer | ) | [inline] |
Creates ptr, initializes with pointer .
Creates ptr, initializes with pointer.
| a_pointer | The initialization value. |
Definition at line 50 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_set().
00050 : 00051 root_pointer() 00052 { 00053 pointer_set(a_pointer); 00054 }
Creates ptr, initializes with pointer .
Creates ptr, initializes with pointer.
| U | The type of the initializer pointer. | |
| a_pointer | The initialization value. |
Definition at line 64 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_set().
00064 : 00065 root_pointer() 00066 { 00067 pointer_set(a_pointer); 00068 }
| lestes::std::ptr< T >::ptr | ( | const ptr< T > & | other | ) | [inline] |
Creates ptr, initializes with ptr to the same type.
Creates ptr, initializes with ptr to the same type. Workaround to avoid implicit copy constructor creation.
| other | The ptr to initialize with. |
Definition at line 88 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get(), and lestes::std::ptr< T >::pointer_set().
00088 : 00089 root_pointer() 00090 { 00091 pointer_set(other.pointer_get()); 00092 }
| lestes::std::ptr< T >::ptr | ( | const ptr< U > & | other | ) | [inline] |
Creates ptr, initializes with ptr.
Creates ptr, initializes with ptr.
Definition at line 102 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get(), and lestes::std::ptr< T >::pointer_set().
00102 : 00103 root_pointer() 00104 { 00105 pointer_set(other.pointer_get()); 00106 }
| lestes::std::ptr< T >::ptr | ( | const srp< U > & | other | ) | [inline] |
Creates ptr, initializes with srp.
Creates ptr, initializes with srp.
Definition at line 116 of file ptr_bodies.hh.
References lestes::std::srp< T >::pointer_get(), and lestes::std::ptr< T >::pointer_set().
00116 : 00117 root_pointer() 00118 { 00119 pointer_set(other.pointer_get()); 00120 }
| lestes::std::ptr< T >::~ptr | ( | void | ) | [inline] |
| T * lestes::std::ptr< T >::operator-> | ( | void | ) | const [inline] |
Returns the pointer.
Returns the pointer.
Definition at line 135 of file ptr_bodies.hh.
References lassert2, and lestes::std::ptr< T >::pointer_get().
00136 { 00137 T * result = pointer_get(); 00138 lassert2( result, "Dereferencing NULL pointer." ); 00139 return result; 00140 }
| T & lestes::std::ptr< T >::operator * | ( | void | ) | const [inline] |
Returns dereferenced pointer.
Dereferences the pointer.
Definition at line 147 of file ptr_bodies.hh.
References lassert2, and lestes::std::ptr< T >::pointer_get().
00148 { 00149 T * presult = pointer_get(); 00150 lassert2( presult, "Dereferencing NULL pointer." ); 00151 return *presult; 00152 }
| ptr< T > & lestes::std::ptr< T >::operator= | ( | T * | a_pointer | ) | [inline] |
Assigns a pointer.
Assigns pointer.
| a_pointer | The pointer to assign. |
Definition at line 160 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_set().
00161 { 00162 pointer_set(a_pointer); 00163 return *this; 00164 }
| ptr< T > & lestes::std::ptr< T >::operator= | ( | U * | a_pointer | ) | [inline] |
Assigns a pointer.
Assigns pointer.
| U | The type of the assigned pointer. | |
| a_pointer | The pointer to assign. |
Definition at line 174 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_set().
00175 { 00176 pointer_set(a_pointer); 00177 return *this; 00178 }
| ptr< T > & lestes::std::ptr< T >::operator= | ( | const ptr< T > & | other | ) | [inline] |
Assigns ptr of the same type.
Assigns ptr of the same type. Workaround to avoid implicit assignment operator creation.
| other | The ptr to assign. |
Definition at line 187 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get(), and lestes::std::ptr< T >::pointer_set().
00188 { 00189 pointer_set(other.pointer_get()); 00190 return *this; 00191 }
| ptr< T > & lestes::std::ptr< T >::operator= | ( | const ptr< U > & | other | ) | [inline] |
Assigns ptr.
Assigns ptr.
Definition at line 201 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get(), and lestes::std::ptr< T >::pointer_set().
00202 { 00203 pointer_set(other.pointer_get()); 00204 return *this; 00205 }
| ptr< T > & lestes::std::ptr< T >::operator= | ( | const srp< U > & | other | ) | [inline] |
Assigns srp.
Assigns srp.
Definition at line 215 of file ptr_bodies.hh.
References lestes::std::srp< T >::pointer_get(), and lestes::std::ptr< T >::pointer_set().
00216 { 00217 pointer_set(other.pointer_get()); 00218 return *this; 00219 }
| lestes::std::ptr< T >::operator condition * | ( | void | ) | const [inline] |
Tests NULL pointer.
Tests NULL pointer.
Definition at line 236 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00237 { 00238 static condition c; 00239 return pointer_get() ? &c : NULL; 00240 }
| bool lestes::std::ptr< T >::operator! | ( | void | ) | const [inline] |
Tests non NULL pointer.
Tests non NULL pointer.
Definition at line 248 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00249 { 00250 return !pointer_get(); 00251 }
| bool lestes::std::ptr< T >::operator== | ( | T * | a_pointer | ) | const [inline] |
Compares to pointer.
Compares to pointer.
Definition at line 258 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00259 { 00260 return pointer_get() == a_pointer; 00261 }
| bool lestes::std::ptr< T >::operator== | ( | U * | a_pointer | ) | const [inline] |
Compares to pointer.
Compares to pointer.
| U | The type of the compared pointer. |
Definition at line 270 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00271 { 00272 return pointer_get() == a_pointer; 00273 }
| bool lestes::std::ptr< T >::operator== | ( | ::std::ptrdiff_t | a_pointer | ) | const [inline] |
Compares to NULL.
Compares to NULL pointer. Workaround to avoid implicit bool conversion.
Definition at line 280 of file ptr_bodies.hh.
References lassert, and lestes::std::ptr< T >::pointer_get().
00285 { 00286 #ifdef LESTES_STRICT_CHECKING 00287 // test whether really comparing with NULL 00288 lassert(!a_pointer); 00289 #endif 00290 return !pointer_get(); 00291 }
| bool lestes::std::ptr< T >::operator== | ( | const ptr< U > & | other | ) | const [inline] |
Compares to ptr.
Compares to ptr.
| U | The type of the compared pointer. |
Definition at line 300 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00301 { 00302 return pointer_get() == other.pointer_get(); 00303 }
| bool lestes::std::ptr< T >::operator== | ( | const srp< U > & | other | ) | const [inline] |
Compares to srp.
Compares to other srp.
| U | The type of the compared srp. |
Definition at line 312 of file ptr_bodies.hh.
References lestes::std::srp< T >::pointer_get(), and lestes::std::ptr< T >::pointer_get().
00313 { 00314 return pointer_get() == other.pointer_get(); 00315 }
| bool lestes::std::ptr< T >::operator!= | ( | T * | a_pointer | ) | const [inline] |
Compares to pointer.
Compares to pointer.
Definition at line 322 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00323 { 00324 return pointer_get() != a_pointer; 00325 }
| bool lestes::std::ptr< T >::operator!= | ( | U * | a_pointer | ) | const [inline] |
Compares to pointer.
Compares to pointer.
| U | The type of the compared pointer. |
Definition at line 334 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00335 { 00336 return pointer_get() != a_pointer; 00337 }
| bool lestes::std::ptr< T >::operator!= | ( | ::std::ptrdiff_t | a_pointer | ) | const [inline] |
Compares to NULL.
Compares to NULL pointer. Workaround to avoid implicit bool conversion.
Definition at line 344 of file ptr_bodies.hh.
References lassert, and lestes::std::ptr< T >::pointer_get().
00345 { 00346 #ifdef LESTES_STRICT_CHECKING 00347 // test whether really comparing with NULL 00348 lassert(!a_pointer); 00349 #endif 00350 return pointer_get(); 00351 }
| bool lestes::std::ptr< T >::operator!= | ( | const ptr< U > & | other | ) | const [inline] |
Compares to ptr.
Compares to ptr.
| U | The type of the compared pointer. |
Definition at line 360 of file ptr_bodies.hh.
References lestes::std::ptr< T >::pointer_get().
00361 { 00362 return pointer_get() != other.pointer_get(); 00363 }
| bool lestes::std::ptr< T >::operator!= | ( | const srp< U > & | other | ) | const [inline] |
Compares to srp.
Compares to other srp.
| U | The type of the compared srp. |
Definition at line 372 of file ptr_bodies.hh.
References lestes::std::srp< T >::pointer_get(), and lestes::std::ptr< T >::pointer_get().
00373 { 00374 return pointer_get() != other.pointer_get(); 00375 }
| ptr< U > lestes::std::ptr< T >::dncast | ( | void | ) | const [inline] |
Performs dynamic cast to other type.
Performs dynamic cast on pointers.
When the dynamic type of the pointee is not the requested one or one derived from it, the function fails with an assertion. Null pointers do not make the function fail.
| U | The type of the target ptr. |
Definition at line 388 of file ptr_bodies.hh.
References lassert2, and lestes::std::ptr< T >::pointer_get().
Referenced by lestes::std::ptr_test().
00389 { 00390 register T * source = pointer_get(); 00391 register U * result = dynamic_cast<U *>(source); 00392 // crash when dncast failed (returned NULL given non-NULL argument) 00393 lassert2( !source || result, "Dncasting to wrong type." ); 00394 return ptr<U>(result); 00395 }
| T * lestes::std::ptr< T >::pointer_get | ( | void | ) | const [inline] |
Returns the pointer.
Returns the pointer.
Reimplemented from lestes::std::mem::root_pointer.
Definition at line 402 of file ptr_bodies.hh.
Referenced by lestes::std::ptr< T >::dncast(), lestes::std::ptr< T >::operator *(), lestes::std::ptr< T >::operator condition *(), lestes::std::ptr< T >::operator!(), lestes::std::srp< T >::operator!=(), lestes::std::ptr< T >::operator!=(), lestes::std::ptr< T >::operator->(), lestes::std::ptr< T >::operator<(), lestes::std::srp< T >::operator=(), lestes::std::ptr< T >::operator=(), lestes::std::srp< T >::operator==(), lestes::std::ptr< T >::operator==(), lestes::std::ptr< T >::ptr(), lestes::std::ptr_test(), and lestes::std::srp< T >::srp().
| bool lestes::std::ptr< T >::operator< | ( | const ptr< T > & | b | ) | const [inline] |
Compares two pointers for ordering.
Compares the pointer with a given one.
| b | The pointer to compare with. |
Definition at line 412 of file ptr_bodies.hh.
References b, and lestes::std::ptr< T >::pointer_get().
00413 { 00414 return pointer_get() < b.pointer_get(); 00415 }
| void lestes::std::ptr< T >::pointer_set | ( | T * | a_pointer | ) | [inline, private] |
Sets the pointer.
Sets the pointer.
| a_pointer | The pointer to set. |
Definition at line 422 of file ptr_bodies.hh.
Referenced by lestes::std::ptr< T >::operator=(), and lestes::std::ptr< T >::ptr().
1.5.1-20070107