|
GiNaC
1.6.2
|
Class of (intrusively) reference-counted pointers that support copy-on-write semantics. More...
#include <ptr.h>
Public Member Functions | |
| ptr (T *t) throw () | |
| Bind ptr to newly created object, start reference counting. | |
| ptr (T &t) throw () | |
| Bind ptr to existing reference-counted object. | |
| ptr (const ptr &other) throw () | |
| ~ptr () | |
| ptr & | operator= (const ptr &other) |
| T & | operator* () const throw () |
| T * | operator-> () const throw () |
| void | makewritable () |
| Announce your intention to modify the object bound to this ptr. | |
| void | swap (ptr &other) throw () |
| Swap the bound object of this ptr with another ptr. | |
| template<class U > | |
| bool | operator== (const ptr< U > &rhs) const throw () |
| template<class U > | |
| bool | operator!= (const ptr< U > &rhs) const throw () |
Private Attributes | |
| T * | p |
Friends | |
| class | std::less< ptr< T > > |
| T * | get_pointer (const ptr &x) throw () |
| template<class U > | |
| bool | operator== (const ptr &lhs, const U *rhs) throw () |
| template<class U > | |
| bool | operator!= (const ptr &lhs, const U *rhs) throw () |
| template<class U > | |
| bool | operator== (const U *lhs, const ptr &rhs) throw () |
| template<class U > | |
| bool | operator!= (const U *lhs, const ptr &rhs) throw () |
| std::ostream & | operator<< (std::ostream &os, const ptr< T > &rhs) |
Class of (intrusively) reference-counted pointers that support copy-on-write semantics.
Requirements for T: must support the refcounted interface (usually by being derived from refcounted) T* T::duplicate() member function (only if makewriteable() is used)
| GiNaC::ptr< T >::ptr | ( | T * | t | ) | throw () [inline] |
| GiNaC::ptr< T >::ptr | ( | T & | t | ) | throw () [inline, explicit] |
| GiNaC::ptr< T >::ptr | ( | const ptr< T > & | other | ) | throw () [inline] |
| GiNaC::ptr< T >::~ptr | ( | ) | [inline] |
| ptr& GiNaC::ptr< T >::operator= | ( | const ptr< T > & | other | ) | [inline] |
| T& GiNaC::ptr< T >::operator* | ( | ) | const throw () [inline] |
| T* GiNaC::ptr< T >::operator-> | ( | ) | const throw () [inline] |
| void GiNaC::ptr< T >::makewritable | ( | ) | [inline] |
Announce your intention to modify the object bound to this ptr.
This ensures that the object is not shared by any other ptrs.
Definition at line 100 of file ptr.h.
Referenced by GiNaC::ex::makewriteable().
| void GiNaC::ptr< T >::swap | ( | ptr< T > & | other | ) | throw () [inline] |
Swap the bound object of this ptr with another ptr.
Definition at line 111 of file ptr.h.
Referenced by GiNaC::ex::swap().
| bool GiNaC::ptr< T >::operator== | ( | const ptr< U > & | rhs | ) | const throw () [inline] |
| bool GiNaC::ptr< T >::operator!= | ( | const ptr< U > & | rhs | ) | const throw () [inline] |
| T* get_pointer | ( | const ptr< T > & | x | ) | throw () [friend] |
Definition at line 96 of file ptr.h.
Referenced by GiNaC::ptr< basic >::operator!=(), and GiNaC::ptr< basic >::operator==().
| bool operator== | ( | const ptr< T > & | lhs, |
| const U * | rhs | ||
| ) | throw () [friend] |
| bool operator!= | ( | const ptr< T > & | lhs, |
| const U * | rhs | ||
| ) | throw () [friend] |
| bool operator== | ( | const U * | lhs, |
| const ptr< T > & | rhs | ||
| ) | throw () [friend] |
| bool operator!= | ( | const U * | lhs, |
| const ptr< T > & | rhs | ||
| ) | throw () [friend] |
| std::ostream& operator<< | ( | std::ostream & | os, |
| const ptr< T > & | rhs | ||
| ) | [friend] |
T* GiNaC::ptr< T >::p [private] |
Definition at line 148 of file ptr.h.
Referenced by GiNaC::ptr< basic >::makewritable(), GiNaC::ptr< basic >::operator!=(), std::less< GiNaC::ptr< T > >::operator()(), GiNaC::ptr< basic >::operator*(), GiNaC::ptr< basic >::operator->(), GiNaC::ptr< basic >::operator=(), GiNaC::ptr< basic >::operator==(), GiNaC::ptr< basic >::ptr(), GiNaC::ptr< basic >::swap(), and GiNaC::ptr< basic >::~ptr().