QuantLib_Disposable

Langue: en

Autres versions - même langue

Version: 382684 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

QuantLib::Disposable -

generic disposable object with move semantics

SYNOPSIS


#include <ql/utilities/disposable.hpp>

Inherits T.

Public Member Functions


Disposable (T &t)

Disposable (const Disposable< T > &t)

Disposable< T > & operator= (const Disposable< T > &t)

Detailed Description

template<class T> class QuantLib::Disposable< T >

generic disposable object with move semantics

This class can be used for returning a value by copy. It relies on the returned object exposing a swap(T&) method through which the copy constructor and assignment operator are implemented, thus resulting in actual move semantics. Typical use of this class is along the following lines:

         Disposable<Foo> bar(Integer i) {
             Foo f(i*2);
             return f;
         }
 
 

Warning

In order to avoid copies in code such as shown above, the conversion from T to Disposable<T> is destructive, i.e., it does not preserve the state of the original object. Therefore, it is necessary for the developer to avoid code such as
         Disposable<Foo> bar(Foo& f) {
             return f;
         }
 


 which would likely render the passed object unusable. The correct way to obtain the desired behavior would be: 

         Disposable<Foo> bar(Foo& f) {
             Foo temp = f;
             return temp;
         }
 
 


 

Author

Generated automatically by Doxygen for QuantLib from the source code.