\hypertarget{a00413}{
\section{mln::util::tracked\_\-ptr$<$ T $>$ Struct Template Reference}
\label{da/d9c/a00413}\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}}
}


Smart pointer for shared data with tracking.  




{\ttfamily \#include $<$tracked\_\-ptr.hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00413_a5467f01d67d970b322bb22f5459797ab}{operator bool} () const 
\begin{DoxyCompactList}\small\item\em Coercion towards Boolean (for arithmetical tests). \item\end{DoxyCompactList}\item 
bool \hyperlink{a00413_adebee3f5c1730ae7e26ac0096ec015b4}{operator!} () const 
\begin{DoxyCompactList}\small\item\em Negation (for arithmetical tests). \item\end{DoxyCompactList}\item 
T $\ast$ \hyperlink{a00413_a139081eaf04067cd69844bc4e303bfd4}{operator-\/$>$} ()
\begin{DoxyCompactList}\small\item\em Mimics the behavior of op-\/$>$ for a pointer in the mutable case. \item\end{DoxyCompactList}\item 
const T $\ast$ \hyperlink{a00413_a1c5c126c924876d2eaa56e3af45d8a28}{operator-\/$>$} () const 
\begin{DoxyCompactList}\small\item\em Mimics the behavior of op-\/$>$ for a pointer in the const case. \item\end{DoxyCompactList}\item 
\hyperlink{a00413}{tracked\_\-ptr}$<$ T $>$ \& \hyperlink{a00413_a55feecdda6c55a50351bef009f36bd38}{operator=} (T $\ast$ptr)
\begin{DoxyCompactList}\small\item\em Assignment. \item\end{DoxyCompactList}\item 
\hyperlink{a00413}{tracked\_\-ptr}$<$ T $>$ \& \hyperlink{a00413_a9a0d88ffccc6f163c1e3338229bf0aa7}{operator=} (const \hyperlink{a00413}{tracked\_\-ptr}$<$ T $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Assignment. \item\end{DoxyCompactList}\item 
\hyperlink{a00413_a20ac044e8d548bd6dd1c699b153103d4}{$\sim$tracked\_\-ptr} ()
\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf }\par
{\em \label{_amgrpd41d8cd98f00b204e9800998ecf8427e}
 }\begin{DoxyCompactItemize}
\item 
\hyperlink{a00413_ab8957752b307d07cad9ccb1620c130b1}{tracked\_\-ptr} ()
\begin{DoxyCompactList}\small\item\em Constructors. \item\end{DoxyCompactList}\item 
\hyperlink{a00413_a0c30e72b71ef08b03a3c56b9a978834b}{tracked\_\-ptr} (const \hyperlink{a00413}{tracked\_\-ptr}$<$ T $>$ \&rhs)
\begin{DoxyCompactList}\small\item\em Copy constructor. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T$>$ struct mln::util::tracked\_\-ptr$<$ T $>$}

Smart pointer for shared data with tracking. 

Definition at line 52 of file tracked\_\-ptr.hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00413_ab8957752b307d07cad9ccb1620c130b1}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!tracked\_\-ptr@{tracked\_\-ptr}}
\index{tracked\_\-ptr@{tracked\_\-ptr}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{tracked\_\-ptr}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ {\bf mln::util::tracked\_\-ptr}$<$ T $>$::{\bf tracked\_\-ptr} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_ab8957752b307d07cad9ccb1620c130b1}


Constructors. 



Definition at line 140 of file tracked\_\-ptr.hh.

\hypertarget{a00413_a0c30e72b71ef08b03a3c56b9a978834b}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!tracked\_\-ptr@{tracked\_\-ptr}}
\index{tracked\_\-ptr@{tracked\_\-ptr}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{tracked\_\-ptr}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ {\bf mln::util::tracked\_\-ptr}$<$ T $>$::{\bf tracked\_\-ptr} (
\begin{DoxyParamCaption}
\item[{const {\bf tracked\_\-ptr}$<$ T $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a0c30e72b71ef08b03a3c56b9a978834b}


Copy constructor. 



Definition at line 164 of file tracked\_\-ptr.hh.

\hypertarget{a00413_a20ac044e8d548bd6dd1c699b153103d4}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!$\sim$tracked\_\-ptr@{$\sim$tracked\_\-ptr}}
\index{$\sim$tracked\_\-ptr@{$\sim$tracked\_\-ptr}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{$\sim$tracked\_\-ptr}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ {\bf mln::util::tracked\_\-ptr}$<$ T $>$::$\sim${\bf tracked\_\-ptr} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a20ac044e8d548bd6dd1c699b153103d4}


Destructor. 



Definition at line 216 of file tracked\_\-ptr.hh.



\subsection{Member Function Documentation}
\hypertarget{a00413_a5467f01d67d970b322bb22f5459797ab}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{operator bool}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ {\bf mln::util::tracked\_\-ptr}$<$ T $>$::operator bool (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a5467f01d67d970b322bb22f5459797ab}


Coercion towards Boolean (for arithmetical tests). 



Definition at line 106 of file tracked\_\-ptr.hh.

\hypertarget{a00413_adebee3f5c1730ae7e26ac0096ec015b4}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!operator!@{operator!}}
\index{operator!@{operator!}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{operator!}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ bool {\bf mln::util::tracked\_\-ptr}$<$ T $>$::operator! (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_adebee3f5c1730ae7e26ac0096ec015b4}


Negation (for arithmetical tests). 



Definition at line 114 of file tracked\_\-ptr.hh.

\hypertarget{a00413_a139081eaf04067cd69844bc4e303bfd4}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{operator-\/$>$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ T $\ast$ {\bf mln::util::tracked\_\-ptr}$<$ T $>$::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a139081eaf04067cd69844bc4e303bfd4}


Mimics the behavior of op-\/$>$ for a pointer in the mutable case. 

\begin{DoxyInvariant}{Invariant}
Pointer proxy exists. 
\end{DoxyInvariant}


Definition at line 131 of file tracked\_\-ptr.hh.

\hypertarget{a00413_a1c5c126c924876d2eaa56e3af45d8a28}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{operator-\/$>$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ const T $\ast$ {\bf mln::util::tracked\_\-ptr}$<$ T $>$::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a1c5c126c924876d2eaa56e3af45d8a28}


Mimics the behavior of op-\/$>$ for a pointer in the const case. 

\begin{DoxyInvariant}{Invariant}
Pointer proxy exists. 
\end{DoxyInvariant}


Definition at line 122 of file tracked\_\-ptr.hh.

\hypertarget{a00413_a55feecdda6c55a50351bef009f36bd38}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!operator=@{operator=}}
\index{operator=@{operator=}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ {\bf tracked\_\-ptr}$<$ T $>$ \& {\bf mln::util::tracked\_\-ptr}$<$ T $>$::operator= (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{ ptr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a55feecdda6c55a50351bef009f36bd38}


Assignment. 



Definition at line 195 of file tracked\_\-ptr.hh.

\hypertarget{a00413_a9a0d88ffccc6f163c1e3338229bf0aa7}{
\index{mln::util::tracked\_\-ptr@{mln::util::tracked\_\-ptr}!operator=@{operator=}}
\index{operator=@{operator=}!mln::util::tracked_ptr@{mln::util::tracked\_\-ptr}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T $>$ {\bf tracked\_\-ptr}$<$ T $>$ \& {\bf mln::util::tracked\_\-ptr}$<$ T $>$::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf tracked\_\-ptr}$<$ T $>$ \&}]{ rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/d9c/a00413_a9a0d88ffccc6f163c1e3338229bf0aa7}


Assignment. 



Definition at line 176 of file tracked\_\-ptr.hh.

