|
GiNaC 1.8.10
|
Class of (intrusively) reference-counted pointers that support copy-on-write semantics. More...
#include <ptr.h>
Public Member Functions | |
| ptr (T *t) noexcept | |
| Bind ptr to newly created object, start reference counting. | |
| ptr (T &t) noexcept | |
| Bind ptr to existing reference-counted object. | |
| ptr (const ptr &other) noexcept | |
| ~ptr () | |
| ptr & | operator= (const ptr &other) |
| T & | operator* () const noexcept |
| T * | operator-> () const noexcept |
| void | makewritable () |
| Announce your intention to modify the object bound to this ptr. | |
| void | swap (ptr &other) noexcept |
| Swap the bound object of this ptr with another ptr. | |
| template<class U > | |
| bool | operator== (const ptr< U > &rhs) const noexcept |
| template<class U > | |
| bool | operator!= (const ptr< U > &rhs) const noexcept |
Private Attributes | |
| T * | p |
Friends | |
| struct | std::less< ptr< T > > |
| T * | get_pointer (const ptr &x) noexcept |
| template<class U > | |
| bool | operator== (const ptr &lhs, const U *rhs) noexcept |
| template<class U > | |
| bool | operator!= (const ptr &lhs, const U *rhs) noexcept |
| template<class U > | |
| bool | operator== (const U *lhs, const ptr &rhs) noexcept |
| template<class U > | |
| bool | operator!= (const U *lhs, const ptr &rhs) noexcept |
| 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)
|
inlinenoexcept |
Bind ptr to newly created object, start reference counting.
Definition at line 66 of file ptr.h.
References GINAC_ASSERT, and GiNaC::ptr< T >::p.
|
inlineexplicitnoexcept |
Bind ptr to existing reference-counted object.
Definition at line 69 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inlinenoexcept |
Definition at line 71 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inline |
Definition at line 73 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inline |
Definition at line 79 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inlinenoexcept |
Definition at line 92 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inlinenoexcept |
Definition at line 93 of file ptr.h.
References GiNaC::ptr< T >::p.
|
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 99 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inlinenoexcept |
Swap the bound object of this ptr with another ptr.
Definition at line 110 of file ptr.h.
References GiNaC::ptr< T >::p.
|
inlinenoexcept |
Definition at line 123 of file ptr.h.
References GiNaC::ptr< T >::get_pointer, GiNaC::ptr< T >::p, and GiNaC::rhs().
|
inlinenoexcept |
Definition at line 126 of file ptr.h.
References GiNaC::ptr< T >::get_pointer, GiNaC::ptr< T >::p, and GiNaC::rhs().
|
friend |
Definition at line 95 of file ptr.h.
Referenced by GiNaC::ptr< T >::operator!=(), and GiNaC::ptr< T >::operator==().
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
Definition at line 147 of file ptr.h.
Referenced by GiNaC::ptr< T >::makewritable(), GiNaC::ptr< T >::operator!=(), GiNaC::ptr< T >::operator*(), GiNaC::ptr< T >::operator->(), GiNaC::ptr< T >::operator=(), GiNaC::ptr< T >::operator==(), GiNaC::ptr< T >::ptr(), GiNaC::ptr< T >::ptr(), GiNaC::ptr< T >::ptr(), GiNaC::ptr< T >::swap(), and GiNaC::ptr< T >::~ptr().