Wt
4.0.0
|
A safe smart pointer for an observable. More...
Public Member Functions | |
observing_ptr (T *t=nullptr) | |
Constructor. More... | |
observing_ptr (const observing_ptr< T > &other) | |
Copy constructor. | |
observing_ptr< T > & | operator= (const observing_ptr< T > &other) |
Assignment operator. | |
template<typename S > | |
observing_ptr (const observing_ptr< S > &other) | |
Copy constructor with type conversion. More... | |
template<typename S > | |
observing_ptr< T > & | operator= (const observing_ptr< S > &other) |
Assignment operator with type conversion. More... | |
T * | get () const |
Returns the pointer value. More... | |
void | reset (T *v=nullptr) |
Resets the value. | |
T * | operator-> () const |
Dereferences the pointer. More... | |
T & | operator* () const |
Dereferences the pointer. More... | |
operator bool () const | |
Returns whether the pointer is still valid. More... | |
bool | observedDeleted () const |
Returns whether the observed object has been deleted. More... | |
A safe smart pointer for an observable.
This smart pointer can point only to objects that are observable. They are safe in the sense that they are aware of the life-time of the observed object, and thus cannot dangle. When dereferencing a pointer to an already destroyed object, an exception is thrown.
Wt::Core::observing_ptr< T >::observing_ptr | ( | T * | t = nullptr | ) |
Constructor.
Wt::Core::observing_ptr< T >::observing_ptr | ( | const observing_ptr< S > & | other | ) |
Copy constructor with type conversion.
This uses a dynamic_cast to perform a type-safe conversion.
T * Wt::Core::observing_ptr< T >::get | ( | ) | const |
Returns the pointer value.
Returns the value set to it, or null
if the object was deleted.
bool Wt::Core::observing_ptr< T >::observedDeleted | ( | ) | const |
Returns whether the observed object has been deleted.
Returns if the pointed object has been deleted.
Wt::Core::observing_ptr< T >::operator bool | ( | ) | const |
Returns whether the pointer is still valid.
Returns if the pointer does not point to null
and the pointed object isn't deleted.
T & Wt::Core::observing_ptr< T >::operator* | ( | ) | const |
Dereferences the pointer.
This throws a std::runtime_error if the pointer cannot be dereferenced.
T * Wt::Core::observing_ptr< T >::operator-> | ( | ) | const |
Dereferences the pointer.
This throws a std::runtime_error if the pointer cannot be dereferenced.
observing_ptr< T > & Wt::Core::observing_ptr< T >::operator= | ( | const observing_ptr< S > & | other | ) |
Assignment operator with type conversion.
This uses a dynamic_cast to perform a type-safe conversion.