Handle Class Template Reference

#include <ql/handle.hpp>

List of all members.


Detailed Description

template<class T>
class QuantLib::Handle< T >

Globally accessible relinkable pointer.

An instance of this class can be relinked to another shared pointer: such change will be propagated to all the copies of the instance.

Precondition:
Class T must inherit from Observable
Examples:

BermudanSwaption.cpp, ConvertibleBonds.cpp, DiscreteHedging.cpp, EquityOption.cpp, FRA.cpp, Replication.cpp, Repo.cpp, and swapvaluation.cpp.


Public Member Functions

 Handle (const boost::shared_ptr< T > &h=boost::shared_ptr< T >(), bool registerAsObserver=true)
void linkTo (const boost::shared_ptr< T > &, bool registerAsObserver=true)
const boost::shared_ptr< T > & currentLink () const
 dereferencing
const boost::shared_ptr< T > & operator-> () const
bool empty () const
 checks if the contained shared pointer points to anything
 operator boost::shared_ptr () const
 allows registration as observable
void swap (Handle< T > &other)
 swaps two handles
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

Related Functions

(Note that these are not member functions.)

void swap (Handle< T > &, Handle< T > &)


Constructor & Destructor Documentation

Handle ( const boost::shared_ptr< T > &  h = boost::shared_ptr< T >(),
bool  registerAsObserver = true 
) [explicit]

Warning:
see the documentation of the Link class for issues relatives to registerAsObserver.


Member Function Documentation

void linkTo ( const boost::shared_ptr< T > &  ,
bool  registerAsObserver = true 
)

Warning:
see the documentation of the Link class for issues relatives to registerAsObserver.