\section{booster\+:\+:intrusive\+\_\+ptr$<$ T $>$ Class Template Reference}
\label{classbooster_1_1intrusive__ptr}\index{booster\+::intrusive\+\_\+ptr$<$ T $>$@{booster\+::intrusive\+\_\+ptr$<$ T $>$}}


\doxyref{intrusive\+\_\+ptr}{p.}{classbooster_1_1intrusive__ptr} is the class taken as-\/is from boost.  




{\ttfamily \#include $<$booster/booster/intrusive\+\_\+ptr.\+h$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef T {\bfseries element\+\_\+type}\label{classbooster_1_1intrusive__ptr_ad80ce0a24af3fdf7eea9eb15e2f0ca3a}

\item 
typedef T $\ast$this\+\_\+type\+::$\ast$ {\bfseries unspecified\+\_\+bool\+\_\+type}\label{classbooster_1_1intrusive__ptr_aed8f3686c3e672a1bb7e565c8b785429}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bfseries intrusive\+\_\+ptr} (T $\ast$p, bool add\+\_\+ref=true)\label{classbooster_1_1intrusive__ptr_a690b87444145883053aa4765f8551dd5}

\item 
T $\ast$ {\bfseries release} ()\label{classbooster_1_1intrusive__ptr_a049842cdd5a561148709ea7cc16df9be}

\item 
{\bfseries intrusive\+\_\+ptr} ({\bf intrusive\+\_\+ptr} const \&rhs)\label{classbooster_1_1intrusive__ptr_a4c2d946b94f16b4a6dcc15d220598885}

\item 
{\footnotesize template$<$class U $>$ }\\{\bfseries intrusive\+\_\+ptr} ({\bf intrusive\+\_\+ptr}$<$ U $>$ const \&rhs)\label{classbooster_1_1intrusive__ptr_a34292c6b01add25de35ca60ae0f2217f}

\item 
{\bf intrusive\+\_\+ptr} \& {\bfseries operator=} ({\bf intrusive\+\_\+ptr} const \&rhs)\label{classbooster_1_1intrusive__ptr_a589806f957b70fbdfd3b4306ab712e7f}

\item 
{\bf intrusive\+\_\+ptr} \& {\bfseries operator=} (T $\ast$rhs)\label{classbooster_1_1intrusive__ptr_af2f7d069f01ae1c67ea94006806a1d87}

\item 
T $\ast$ {\bfseries get} () const \label{classbooster_1_1intrusive__ptr_aedf1de239f6d3afa47580e66493426bf}

\item 
T \& {\bfseries operator$\ast$} () const \label{classbooster_1_1intrusive__ptr_a43db4f9bd0c01fe313db46d2b423de08}

\item 
T $\ast$ {\bfseries operator-\/$>$} () const \label{classbooster_1_1intrusive__ptr_a0747ec75989dc79e5b03d39140312fff}

\item 
{\bfseries operator unspecified\+\_\+bool\+\_\+type} () const \label{classbooster_1_1intrusive__ptr_a1852981788a6567f5b8daed7c91a2c00}

\item 
bool {\bfseries operator!} () const \label{classbooster_1_1intrusive__ptr_ab214af87dc4812e5fe04ca2d2f63482c}

\item 
void {\bfseries swap} ({\bf intrusive\+\_\+ptr} \&rhs)\label{classbooster_1_1intrusive__ptr_a4a6239f1f9438e088fa424e8fb6ea6f1}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class T$>$\\*
class booster\+::intrusive\+\_\+ptr$<$ T $>$}

\doxyref{intrusive\+\_\+ptr}{p.}{classbooster_1_1intrusive__ptr} is the class taken as-\/is from boost. 

A smart pointer that uses intrusive reference counting.

Relies on unqualified calls to \begin{DoxyVerb}void intrusive_ptr_add_ref(T * p);
void intrusive_ptr_release(T * p);

    (p != 0)
\end{DoxyVerb}


The object is responsible for destroying itself.

See\+: {\tt http\+://www.\+boost.\+org/doc/libs/release/libs/smart\+\_\+ptr} 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
booster/intrusive\+\_\+ptr.\+h\end{DoxyCompactItemize}
