QuantLib_Handle (3) Linux Manual Page
QuantLib::Handle – Shared handle to an observable.
Synopsis
#include <ql/handle.hpp>Public Member Functions
Handle (const boost::shared_ptr< T > &h=boost::shared_ptr< T >(), bool registerAsObserver=true) const boost::shared_ptr< T > & currentLink () const
dereferencing
const boost::shared_ptr< T > & operator-> () const
const boost::shared_ptr< T > & operator* () const
bool empty () const
checks if the contained shared pointer points to anything
operator boost::shared_ptr< Observable > () const
allows registration as observable
template<class U > bool operator== (const Handle< U > &other)
equality test
template<class U > bool operator!= (const Handle< U > &other)
disequality test
template<class U > bool operator< (const Handle< U > &other)
strict weak ordering
Protected Attributes
boost::shared_ptr< Link > link_Detailed Description
template<class T> class QuantLib::Handle< T >
Shared handle to an observable.All copies of an instance of this class refer to the same observable by means of a relinkable smart pointer. When such pointer is relinked to another observable, the change will be propagated to all the copies.
Precondition:
- Class T must inherit from Observable
Constructor & Destructor Documentation
Handle (const boost::shared_ptr< T > & h = boost::shared_ptr<T>(), bool registerAsObserver = true) [explicit]
Warning- registerAsObserver is left as a backdoor in case the programmer cannot guarantee that the object pointed to will remain alive for the whole lifetime of the handle—namely, it should be set to false when the passed shared pointer does not own the pointee (this should only happen in a controlled environment, so that the programmer is aware of it). Failure to do so can very likely result in a program crash. If the programmer does want the handle to register as observer of such a shared pointer, it is his responsibility to ensure that the handle gets destroyed before the pointed object does.
