Handle Class Template Reference
#include <ql/handle.hpp>
Inheritance diagram for Handle:

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
- Examples:
-
BermudanSwaption.cpp, ConvertibleBonds.cpp, DiscreteHedging.cpp, EquityOption.cpp, Replication.cpp, and swapvaluation.cpp.
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_ |
Constructor & Destructor Documentation
| Handle | ( | const boost::shared_ptr< T > & | h = boost::shared_ptr<T>(), |
|
| bool | registerAsObserver = true | |||
| ) | [explicit] |
- Warning:
registerAsObserveris 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 tofalsewhen 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.