#include <arg_grin_ptr.h>
Public Members | |||
![]() | ![]() | explicit | grin_ptr (p_type* pointee) |
![]() | ![]() | Construct owining p - p_type must be a complete type. | |
![]() | ![]() | grin_ptr (const grin_ptr& rhs) | |
![]() | ![]() | Makes a copy of the object referenced by rhs. | |
![]() | ![]() | ~grin_ptr () throw () | |
![]() | ![]() | Destroys the referenced object. | |
![]() | ![]() | const p_type* | get () const |
![]() | ![]() | Return contents (const). | |
![]() | ![]() | p_type* | get () |
![]() | ![]() | Return contents (non-const). | |
![]() | ![]() | const p_type* | operator-> () const |
![]() | ![]() | Indirection operator(const). | |
![]() | ![]() | p_type* | operator-> () |
![]() | ![]() | Indirection operator (non-const). | |
![]() | ![]() | const p_type& | operator * () const |
![]() | ![]() | Dereference operator(const). | |
![]() | ![]() | p_type& | operator * () |
![]() | ![]() | Dereference operator (non-const). | |
![]() | ![]() | void | swap (grin_ptr& with) throw () |
![]() | ![]() | Swaps contents with "with". | |
![]() | ![]() | grin_ptr& | operator= (const grin_ptr& rhs) |
![]() | ![]() | Makes a copy of the object referenced by rhs (destroys old). |
A const-qualified smart pointer that takes ownership of the referenced object and implements copy construction/assignment by copying the referenced object.
The correct algorithm for copying is resolved by using the arg::deep_copy() template. This means that the referenced object will be copied using the copy construction unless it is tagged by inheriting from arg::cloneable or an overload of arg::deep_copy() is provided.
All methods support the strong exception safety guarantee with the proviso that the referenced type must have a non-throwing destructor.
template<typename p_type> explicit arg::grin_ptr<p_type>::grin_ptr<p_type> (p_type * pointee) |
Construct owining p - p_type must be a complete type.
template<typename p_type> arg::grin_ptr<p_type>::grin_ptr<p_type> (const grin_ptr<p_type> & rhs) [inline]
|
Makes a copy of the object referenced by rhs.
template<typename p_type> arg::grin_ptr<p_type>::~grin_ptr<p_type> () throw () [inline]
|
Destroys the referenced object.
template<typename p_type> const p_type * arg::grin_ptr<p_type>::get () const [inline]
|
Return contents (const).
template<typename p_type> p_type * arg::grin_ptr<p_type>::get () [inline]
|
Return contents (non-const).
template<typename p_type> const p_type * arg::grin_ptr<p_type>::operator-> () const [inline]
|
Indirection operator(const).
template<typename p_type> p_type * arg::grin_ptr<p_type>::operator-> () [inline]
|
Indirection operator (non-const).
template<typename p_type> const p_type & arg::grin_ptr<p_type>::operator * () const [inline]
|
Dereference operator(const).
template<typename p_type> p_type & arg::grin_ptr<p_type>::operator * () [inline]
|
Dereference operator (non-const).
template<typename p_type> void arg::grin_ptr<p_type>::swap (grin_ptr<p_type> & with) throw () [inline]
|
Swaps contents with "with".
template<typename p_type> grin_ptr<p_type>& arg::grin_ptr<p_type>::operator= (const grin_ptr<p_type> & rhs) [inline]
|
Makes a copy of the object referenced by rhs (destroys old).