Despite the name this template can actually be used as a
smart pointer for any class implementing the reference
-counting interface and it does not use or depend on wxObject.
+counting interface which only consists of the two methods
+{\bf T::IncRef()} and {\bf T::DecRef()}.
The difference to \helpref{wxSharedPtr}{wxsharedptr} is that
wxObjectDataPtr relies on the reference counting to be in
\func{wxEXPLICIT}{wxObjectDataPtr<T>}{\param{T* }{ptr = NULL}}
Constructor. {\it ptr} is a pointer to the reference
-counted object to which this class points.
+counted object to which this class points. If {\it ptr}
+is not NULL {\bf T::IncRef()} will be called on the
+object.
\func{}{wxObjectDataPtr<T>}{\param{const wxObjectDataPtr<T>\& }{tocopy}}
\func{}{\destruct{wxObjectDataPtr<T>}}{\void}
-Calls \helpref{DecRef}{wxobjectrefdatadecref} on the reference
-counted object to which this class points.
+Decreases the reference count of the object to which this
+class points.
\membersection{wxObjectDataPtr<T>::operator unspecified\_bool\_type}\label{wxobjectdataptroperatorbool}
\func{void}{reset}{\param{T* }{ptr}}
Reset this class to {\it ptr} which points to a reference
-counted object.
+counted object and calls {\bf T::DecRef()} on the previously
+owned object.
\func{T*}{release}{\void}
Releases the current pointer and returns it.
+Afterwards the caller is responsible for deleting
+the data contained in the scoped pointer before.
\membersection{wxScopedPtr<T>::reset}\label{wxscopedptrtemplatereset}
\func{void}{reset}{\param{T * }{ptr = NULL}}
-Reset pointer. Afterwards the caller is responsible for deleting
-the data contained in the scoped pointer before.
+Reset pointer to the value of {\it ptr}. The
+previous pointer will be deleted.
\membersection{wxScopedPtr<T>::swap}\label{wxscopedptrtemplateswap}
\wxheading{See also}
-\helpref{wxScopedPtr}{wxscopedptrtemplate}, \helpref{wxWeakRef}{wxweakref}
+\helpref{wxScopedPtr}{wxscopedptrtemplate}, \helpref{wxWeakRef}{wxweakref},
+\helpref{wxObjectDataPtr}{wxobjectdataptr}
\latexignore{\rtfignore{\wxheading{Members}}}
\func{wxSharedPtr<T>\& operator}{operator=}{\param{const wxSharedPtr<T>\& }{tocopy}}
Assignment operator. Releases any previously held pointer
-and creates a reference to same object as {\it topcopy}.
+and creates a reference to the same object as {\it topcopy}.
\membersection{wxSharedPtr<T>::operator=}\label{wxsharedptroperatorassign2}
\func{void}{reset}{\param{T * }{ptr = NULL}}
-Reset pointer to {\it ptr}. Afterwards the caller is responsible
-for deleting the data contained in the pointer before.
+Reset pointer to {\it ptr}. If the reference count of the
+previously owned pointer was 1 it will be deleted.