#include <CheckedPtr.hh>
Its role is to check for the nullness of the pointer it contains before a dereference operation. It is used by Owned<T*> and BLink<T> when they return their pointer, so that the assertion can be done only if the pointer is dereferenced rather than just used by value (in a boolean test or comparison to other pointer etc). For instance,
    Owned<Foo*> foo;
    if ( isNull(foo()) ) doSomething(); // line 1
    foo()->callFooMethod(); // line 2
CheckedPtr can be used as a normal pointer for almost any pointer operation. The only known case where this is not true is when giving a CheckedPtr<T> to a function template expecting a T*, since the compiler does not attempt any conversion in this case, and you must use (T*) in front of your argument.
Definition at line 59 of file CheckedPtr.hh.
| Public Methods | |
| CheckedPtr (T *ptr) | |
| Construct for ptr. | |
| CheckedPtr (const CheckedPtr &rhs) | |
| Copy consructor. | |
| template<typename T2> | CheckedPtr (const CheckedPtr< T2 > &rhs) | 
| Copy-convert constructor for pointer conversions. | |
| T * | operator-> () const | 
| dereference for access | |
| T & | operator * () const | 
| dereference for use | |
| operator T * () const | |
| Convert to a pointer of type T when necessary. | |
| Comparison operators | |
| Friends | |
| class | CheckedPtr | 
| All CheckedPtr are friends so pointer conversions possible. | |
 1.2.18
1.2.18