\section{booster\+:\+:locale\+:\+:hold\+\_\+ptr$<$ T $>$ Class Template Reference}
\label{classbooster_1_1locale_1_1hold__ptr}\index{booster\+::locale\+::hold\+\_\+ptr$<$ T $>$@{booster\+::locale\+::hold\+\_\+ptr$<$ T $>$}}


a smart pointer similar to std\+::auto\+\_\+ptr but it is non-\/copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer).  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf hold\+\_\+ptr} ()
\item 
{\bf hold\+\_\+ptr} (T $\ast$v)
\item 
{\bf $\sim$hold\+\_\+ptr} ()
\item 
T const $\ast$ {\bf get} () const 
\item 
T $\ast$ {\bf get} ()
\item 
T const \& {\bf operator$\ast$} () const 
\item 
T \& {\bf operator$\ast$} ()
\item 
T const $\ast$ {\bf operator-\/$>$} () const 
\item 
T $\ast$ {\bf operator-\/$>$} ()
\item 
T $\ast$ {\bf release} ()
\item 
void {\bf reset} (T $\ast$p=0)
\item 
void {\bf swap} ({\bf hold\+\_\+ptr} \&other)\label{classbooster_1_1locale_1_1hold__ptr_a087519c5a4e04ae848d04faab24e5f4c}

\begin{DoxyCompactList}\small\item\em Swap two pointers. \end{DoxyCompactList}\end{DoxyCompactItemize}


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

a smart pointer similar to std\+::auto\+\_\+ptr but it is non-\/copyable and the underlying object has the same constness as the pointer itself (unlike an ordinary pointer). 

\subsection{Constructor \& Destructor Documentation}
\index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!hold\+\_\+ptr@{hold\+\_\+ptr}}
\index{hold\+\_\+ptr@{hold\+\_\+ptr}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{hold\+\_\+ptr()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::{\bf hold\+\_\+ptr} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_a9c6e9c5006ea6d9f23e9834608ed5ffe}
Create new empty pointer \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!hold\+\_\+ptr@{hold\+\_\+ptr}}
\index{hold\+\_\+ptr@{hold\+\_\+ptr}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{hold\+\_\+ptr(\+T $\ast$v)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::{\bf hold\+\_\+ptr} (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}\label{classbooster_1_1locale_1_1hold__ptr_a41cf7c5a34d61fd12a7933d932403256}
Create a pointer that holds {\itshape v}, ownership is transferred to smart pointer \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!````~hold\+\_\+ptr@{$\sim$hold\+\_\+ptr}}
\index{````~hold\+\_\+ptr@{$\sim$hold\+\_\+ptr}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{$\sim$hold\+\_\+ptr()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::$\sim${\bf hold\+\_\+ptr} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_aa1203a2600c06abd83ffeb6343817fa4}
Destroy smart pointer and the object it owns. 

\subsection{Member Function Documentation}
\index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!get@{get}}
\index{get@{get}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{get() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T const$\ast$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::get (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_a8e886544a4ff7d1920500d550e721962}
Get a const pointer to the object \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!get@{get}}
\index{get@{get}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{get()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T$\ast$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::get (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_a783aefb4e4d791a1f494fde0a0bb74c4}
Get a mutable pointer to the object \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{operator$\ast$() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T const\& {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::operator$\ast$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_a94b0e0dc6be2f768b704eeb2a0cc9c21}
Get a const reference to the object \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{operator$\ast$()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T\& {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::operator$\ast$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_ace5344aa8c456c30771631fe8515590f}
Get a mutable reference to the object \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{operator-\/$>$() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T const$\ast$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_ab787b7196c58d8446845710e39743947}
Get a const pointer to the object \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{operator-\/$>$()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T$\ast$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_afc2844c6e2dfe35937eab07f36604f8f}
Get a mutable pointer to the object \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!release@{release}}
\index{release@{release}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{release()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ T$\ast$ {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::release (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_a6be7fbc6995c69a44f79ee4acdaecb44}
Transfer an ownership on the pointer to user \index{booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}!reset@{reset}}
\index{reset@{reset}!booster\+::locale\+::hold\+\_\+ptr@{booster\+::locale\+::hold\+\_\+ptr}}
\subsubsection[{reset(\+T $\ast$p=0)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ void {\bf booster\+::locale\+::hold\+\_\+ptr}$<$ T $>$\+::reset (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{p = {\ttfamily 0}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1locale_1_1hold__ptr_a33bd6bb2d9f1644470b0285858c02f86}
Set new value to pointer, previous object is destroyed, ownership on new object is transferred 

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