-{\section{\class{wxScopedPtr}}\label{wxscopedptr}
+\section{\class{wxScopedPtr}}\label{wxscopedptr}
This is a simple scoped smart pointer implementation that is similar to
the \urlref{Boost}{http://www.boost.org/} smart pointers but rewritten to
\wxheading{Example}
-Below is an example of using a wxWindows scoped smart pointer and
+Below is an example of using a wxWidgets scoped smart pointer and
pointer array.
\begin{verbatim}
To declare the smart pointer class \texttt{CLASSNAME} containing pointes to a
(possibly incomplete) type \texttt{TYPE} you should use
+
\begin{verbatim}
wxDECLARE_SCOPED_PTR( TYPE, // type of the values
CLASSNAME ); // name of the class
\end{verbatim}
And later, when \texttt{TYPE} is fully defined, you must also use
+
\begin{verbatim}
wxDEFINE_SCOPED_PTR( TYPE, CLASSNAME );
\end{verbatim}
definition of this class and if you accept the standard naming convention, that
is that the scoped pointer for the class \texttt{Foo} is called
\texttt{FooPtr}, you can use a single macro which replaces two macros above:
+
\begin{verbatim}
wxDEFINE_SCOPED_PTR_TYPE( TYPE );
\end{verbatim}
+
Once again, in this cass \texttt{CLASSNAME} will be \texttt{TYPEPtr}.
\wxheading{Include files}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxScopedPtr::wxScopedPtr}
+\membersection{wxScopedPtr::wxScopedPtr}\label{wxscopedptrctor}
\func{}{explicit wxScopedPtr}{\param{type}{ * T = NULL}}
compilers that support it, this uses the explicit keyword.
-\membersection{wxScopedPtr::\destruct{wxScopedPtr}}
+\membersection{wxScopedPtr::\destruct{wxScopedPtr}}\label{wxscopedptrdtor}
\func{}{\destruct{wxScopedPtr}}{\void}
Destructor frees the pointer help by this object if it is not {\tt NULL}.
-\membersection{wxScopedPtr::release}
+\membersection{wxScopedPtr::release}\label{wxscopedptrrelease}
\func{T *}{release}{\void}
deleting the pointer.
-\membersection{wxScopedPtr::reset}
+\membersection{wxScopedPtr::reset}\label{wxscopedptrreset}
\func{\void}{reset}{\param{T}{ p * = NULL}}
pointer you are assigning is not the same pointer that is already stored.
-\membersection{wxScopedPtr::operator *}
+\membersection{wxScopedPtr::operator *}\label{wxscopedptrptr}
\func{const T\&}{operator *}{\void}
crash.
-\membersection{wxScopedPtr::operator -$>$} % TODO
+\membersection{wxScopedPtr::operator -$>$}\label{wxscopedptrref}
\func{const T*}{operator -$>$}{\void} % TODO
in the smart pointer or NULL if it is empty.
-\membersection{wxScopedPtr::get}
+\membersection{wxScopedPtr::get}\label{wxscopedptrget}
\func{const T*}{get}{\void}
there is none.
-\membersection{wxScopedPtr::swap}
+\membersection{wxScopedPtr::swap}\label{wxscopedptrswap}
\func{\void}{swap}{\param{wxScopedPtr}{ \& other}}