Wt  4.0.0
Public Member Functions | List of all members
Wt::Core::observing_ptr< T > Class Template Reference

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...
 

Detailed Description

template<typename T>
class Wt::Core::observing_ptr< T >

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.

See also
observable

Constructor & Destructor Documentation

template<typename T>
Wt::Core::observing_ptr< T >::observing_ptr ( T *  t = nullptr)

Constructor.

See also
reset()
template<typename T >
template<typename S >
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.

Member Function Documentation

template<typename T >
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.

See also
reset()
template<typename T >
bool Wt::Core::observing_ptr< T >::observedDeleted ( ) const

Returns whether the observed object has been deleted.

Returns if the pointed object has been deleted.

template<typename T >
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.

template<typename T >
T & Wt::Core::observing_ptr< T >::operator* ( ) const

Dereferences the pointer.

This throws a std::runtime_error if the pointer cannot be dereferenced.

template<typename T >
T * Wt::Core::observing_ptr< T >::operator-> ( ) const

Dereferences the pointer.

This throws a std::runtime_error if the pointer cannot be dereferenced.

template<typename T >
template<typename S >
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.


Generated on Mon Sep 4 2017 for the C++ Web Toolkit (Wt) by doxygen 1.8.11