\hypertarget{classebml_1_1ebml__shared__ptr}{}\section{ebml\+:\+:ebml\+\_\+shared\+\_\+ptr$<$ T $>$ Class Template Reference}
\label{classebml_1_1ebml__shared__ptr}\index{ebml\+::ebml\+\_\+shared\+\_\+ptr$<$ T $>$@{ebml\+::ebml\+\_\+shared\+\_\+ptr$<$ T $>$}}


A drop-\/in replacement for std\+::shared\+\_\+ptr tailored for E\+B\+ML objects.  




{\ttfamily \#include $<$ptrs.\+h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a247a44f859c750483f5c4e1d9e4369a6}{ebml\+\_\+shared\+\_\+ptr}} ()
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a6904c1e89f85d6cd73ab5b3ca6beb67e}{ebml\+\_\+shared\+\_\+ptr}} (const std\+::nullptr\+\_\+t \&)
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a5cf9779f612b08bc0c79ef50d9a9d421}{ebml\+\_\+shared\+\_\+ptr}} (T $\ast$\mbox{\hyperlink{namespaceebml_a390a3cc4808943a10d4a6f1f912afaba}{ptr}})
\begin{DoxyCompactList}\small\item\em Constructs an \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} that takes ownership of {\ttfamily ptr}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a10411484b17dad702c380b0e754d6183}{ebml\+\_\+shared\+\_\+ptr}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&other)
\item 
{\footnotesize template$<$class U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a98615094908c13090d638fbeb63e05e5}{ebml\+\_\+shared\+\_\+ptr}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&other)
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a0a83cf5bf594c58fcf25f387fea06b69}{ebml\+\_\+shared\+\_\+ptr}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&\&other)
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_acb4e2cc18b18501cf730d564d64a01d4}{$\sim$ebml\+\_\+shared\+\_\+ptr}} ()
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a2b766448bfc6c77a0b323ae941db990f}{operator=}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&other)
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_af8090e2b724e6c68ea0745acd58821a2}{operator=}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&\&other)
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a6de2da37b38e5b69b49ebc2187f52a31}{operator=}} (const std\+::nullptr\+\_\+t \&)
\item 
bool \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_adb2b9501b7b1d6cc70441a0477ba47b5}{operator==}} (const std\+::nullptr\+\_\+t \&) const
\item 
bool \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a5aa03d821f900fe6c7e0a08ac304bb4f}{operator==}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&other) const
\item 
{\footnotesize template$<$typename U $>$ }\\std\+::enable\+\_\+if\+\_\+t$<$!std\+::is\+\_\+same$<$ T, U $>$\+::value, \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \& $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a94a54f25fbf783ca41b92bb35b705bfb}{operator=}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&other)
\item 
void \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a44fea3c2f04c52c2c1178330a5456198}{swap}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&other)
\item 
T $\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a3ec9c3bc3c1441ac805583b04da1a450}{get}} () const
\begin{DoxyCompactList}\small\item\em Retrieves the raw pointer to the managed object. \end{DoxyCompactList}\item 
T \& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a6f12c424f1829eb8999c5799ce49717c}{operator$\ast$}} () const
\item 
T $\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_ab0895becfabf1d51497540d31d486513}{operator-\/$>$}} () const
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a210be1e7a537bd49db71ed1e9c4b0afb}{operator bool}} () const
\item 
int \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_ade40f3b88c0389ec9b94a5ac0bf843bc}{use\+\_\+count}} () const
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a8f86120e469728ac1c39bf796cad364b}{ebml\+\_\+shared\+\_\+ptr}} (\mbox{\hyperlink{structebml_1_1control__block}{control\+\_\+block}} $\ast$\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a088dfc89b1cd65138c363e019a75f9b2}{ctl}}, T $\ast$\mbox{\hyperlink{namespaceebml_a390a3cc4808943a10d4a6f1f912afaba}{ptr}})
\item 
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_ac15428dd2def75a1b1c2294664d53ad8}{ebml\+\_\+shared\+\_\+ptr}} (\mbox{\hyperlink{structebml_1_1control__block}{control\+\_\+block}} $\ast$\mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a088dfc89b1cd65138c363e019a75f9b2}{ctl}}, T $\ast$\mbox{\hyperlink{namespaceebml_a390a3cc4808943a10d4a6f1f912afaba}{ptr}}, const std\+::unique\+\_\+lock$<$ std\+::mutex $>$ \&)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::mutex \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_aa1ec71683f2a4e3825f0a13c5df74f6c}{mutex}}
\item 
\mbox{\hyperlink{structebml_1_1control__block}{control\+\_\+block}} $\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a088dfc89b1cd65138c363e019a75f9b2}{ctl}} = nullptr
\item 
T $\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_ac6235a7b11ac7364ac75384743c2ee20}{ptr}} = nullptr
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename U $>$ }\\class \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_af229d30a57079c9d2ac1c4eca4f8a36c}{ebml\+\_\+shared\+\_\+ptr}}
\item 
{\footnotesize template$<$typename U $>$ }\\class \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a14acbb6e15cdaa0999271c4f42797f5e}{ebml\+\_\+weak\+\_\+ptr}}
\item 
{\footnotesize template$<$typename U , typename V $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_ae2f43ef29c97eef4ebeea4b59609235a}{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&)
\item 
{\footnotesize template$<$typename U , typename V $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_ad2ace5801a4c2c045566f612002a5b81}{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&\&)
\item 
{\footnotesize template$<$typename U , typename V $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a5b095cf546cb10cc79098a3d5d109fb0}{ebml\+\_\+static\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&)
\item 
{\footnotesize template$<$typename U , typename V $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a1f8dc09a802a18745ef9b3df8153c046}{ebml\+\_\+static\+\_\+pointer\+\_\+cast}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&\&)
\item 
{\footnotesize template$<$typename U , typename V $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a946d842dbf2fa0032ac0b40fbd1be1f0}{ebml\+\_\+const\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&)
\item 
{\footnotesize template$<$typename U , typename V $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr_a4e5f01516955b634f0a2db2817179260}{ebml\+\_\+const\+\_\+pointer\+\_\+cast}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&\&)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
class ebml\+::ebml\+\_\+shared\+\_\+ptr$<$ T $>$}

A drop-\/in replacement for std\+::shared\+\_\+ptr tailored for E\+B\+ML objects. 

This custom smart pointer, {\ttfamily \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}}, is designed to mimic the behavior of std\+::shared\+\_\+ptr while supporting a unique lifetime management scheme required by the E\+B\+ML library.

{\bfseries Key Features and Usage Guidelines\+:}
\begin{DoxyItemize}
\item {\bfseries Controlled Self-\/\+Referencing\+:} Although self-\/referencing (i.\+e. creating a shared pointer from {\ttfamily this}) may be necessary in some designs, it is considered unsafe to do so from within an object\textquotesingle{}s constructor in conjunction with \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}. The internal control block\textquotesingle{}s {\ttfamily valid} flag is set to true the moment the first shared pointer is created.
\item {\bfseries Safe Management of Lifetime\+:} Once the first \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} is created for an object, the {\ttfamily valid} member is marked as true. After this point, the object is considered active and further manipulation of the {\ttfamily valid} member is not recommended.
\item {\bfseries Error Prevention\+:} This mechanism avoids double deletion scenarios; if an error occurs during construction, it is the caller’s responsibility to ensure that no shared pointer is created prematurely (i.\+e., within the object\textquotesingle{}s constructor).
\end{DoxyItemize}

{\bfseries Note for Subclassing\+:}
\begin{DoxyItemize}
\item For classes derived from {\ttfamily \mbox{\hyperlink{classebml_1_1ebmlElement}{ebml\+Element}}}, the construction of the internal weak pointer is already handled by the base class. Users are only expected to use these custom pointer types (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} and \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}) for other classes.
\end{DoxyItemize}


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & The type of the object being managed. \\
\hline
\end{DoxyTemplParams}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a8f86120e469728ac1c39bf796cad364b}\label{classebml_1_1ebml__shared__ptr_a8f86120e469728ac1c39bf796cad364b}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [1/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structebml_1_1control__block}{control\+\_\+block}} $\ast$}]{ctl,  }\item[{T $\ast$}]{ptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [protected]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_ac15428dd2def75a1b1c2294664d53ad8}\label{classebml_1_1ebml__shared__ptr_ac15428dd2def75a1b1c2294664d53ad8}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [2/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structebml_1_1control__block}{control\+\_\+block}} $\ast$}]{ctl,  }\item[{T $\ast$}]{ptr,  }\item[{const std\+::unique\+\_\+lock$<$ std\+::mutex $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [protected]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a247a44f859c750483f5c4e1d9e4369a6}\label{classebml_1_1ebml__shared__ptr_a247a44f859c750483f5c4e1d9e4369a6}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [3/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a6904c1e89f85d6cd73ab5b3ca6beb67e}\label{classebml_1_1ebml__shared__ptr_a6904c1e89f85d6cd73ab5b3ca6beb67e}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [4/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{const std\+::nullptr\+\_\+t \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a5cf9779f612b08bc0c79ef50d9a9d421}\label{classebml_1_1ebml__shared__ptr_a5cf9779f612b08bc0c79ef50d9a9d421}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [5/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{T $\ast$}]{ptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}



Constructs an \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} that takes ownership of {\ttfamily ptr}. 

When the first \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} for the object is created, the control block\textquotesingle{}s {\ttfamily valid} member is set to true. It is then unsafe to modify the {\ttfamily valid} flag or create additional shared pointers from within the object\textquotesingle{}s constructor.


\begin{DoxyParams}{Parameters}
{\em ptr} & Pointer to the object to be managed. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a10411484b17dad702c380b0e754d6183}\label{classebml_1_1ebml__shared__ptr_a10411484b17dad702c380b0e754d6183}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [6/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a98615094908c13090d638fbeb63e05e5}\label{classebml_1_1ebml__shared__ptr_a98615094908c13090d638fbeb63e05e5}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [7/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$class U $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a0a83cf5bf594c58fcf25f387fea06b69}\label{classebml_1_1ebml__shared__ptr_a0a83cf5bf594c58fcf25f387fea06b69}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr()}{ebml\_shared\_ptr()}\hspace{0.1cm}{\footnotesize\ttfamily [8/8]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&\&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_acb4e2cc18b18501cf730d564d64a01d4}\label{classebml_1_1ebml__shared__ptr_acb4e2cc18b18501cf730d564d64a01d4}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!````~ebml\+\_\+shared\+\_\+ptr@{$\sim$ebml\+\_\+shared\+\_\+ptr}}
\index{````~ebml\+\_\+shared\+\_\+ptr@{$\sim$ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{$\sim$ebml\+\_\+shared\+\_\+ptr()}{~ebml\_shared\_ptr()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::$\sim$\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a3ec9c3bc3c1441ac805583b04da1a450}\label{classebml_1_1ebml__shared__ptr_a3ec9c3bc3c1441ac805583b04da1a450}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!get@{get}}
\index{get@{get}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{get()}{get()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
T$\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::get (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Retrieves the raw pointer to the managed object. 

This function returns the pointer stored in the control block. It is expected that the control block\textquotesingle{}s {\ttfamily valid} flag is already set to true (which happens when the first \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}} is constructed).

\begin{DoxyReturn}{Returns}
T$\ast$ Pointer to the managed object. 
\end{DoxyReturn}
\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a210be1e7a537bd49db71ed1e9c4b0afb}\label{classebml_1_1ebml__shared__ptr_a210be1e7a537bd49db71ed1e9c4b0afb}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator bool()}{operator bool()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator bool (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a6f12c424f1829eb8999c5799ce49717c}\label{classebml_1_1ebml__shared__ptr_a6f12c424f1829eb8999c5799ce49717c}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator$\ast$()}{operator*()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
T\& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_ab0895becfabf1d51497540d31d486513}\label{classebml_1_1ebml__shared__ptr_ab0895becfabf1d51497540d31d486513}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
T$\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a2b766448bfc6c77a0b323ae941db990f}\label{classebml_1_1ebml__shared__ptr_a2b766448bfc6c77a0b323ae941db990f}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator=@{operator=}}
\index{operator=@{operator=}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$T$>$\& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_af8090e2b724e6c68ea0745acd58821a2}\label{classebml_1_1ebml__shared__ptr_af8090e2b724e6c68ea0745acd58821a2}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator=@{operator=}}
\index{operator=@{operator=}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$T$>$\& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&\&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a6de2da37b38e5b69b49ebc2187f52a31}\label{classebml_1_1ebml__shared__ptr_a6de2da37b38e5b69b49ebc2187f52a31}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator=@{operator=}}
\index{operator=@{operator=}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$T$>$\& \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator= (\begin{DoxyParamCaption}\item[{const std\+::nullptr\+\_\+t \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a94a54f25fbf783ca41b92bb35b705bfb}\label{classebml_1_1ebml__shared__ptr_a94a54f25fbf783ca41b92bb35b705bfb}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator=@{operator=}}
\index{operator=@{operator=}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U $>$ \\
std\+::enable\+\_\+if\+\_\+t$<$!std\+::is\+\_\+same$<$T, U$>$\+::value, \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$T$>$\&$>$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_adb2b9501b7b1d6cc70441a0477ba47b5}\label{classebml_1_1ebml__shared__ptr_adb2b9501b7b1d6cc70441a0477ba47b5}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator==@{operator==}}
\index{operator==@{operator==}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator==()}{operator==()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
bool \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator== (\begin{DoxyParamCaption}\item[{const std\+::nullptr\+\_\+t \&}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a5aa03d821f900fe6c7e0a08ac304bb4f}\label{classebml_1_1ebml__shared__ptr_a5aa03d821f900fe6c7e0a08ac304bb4f}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!operator==@{operator==}}
\index{operator==@{operator==}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{operator==()}{operator==()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
bool \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&}]{other }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a44fea3c2f04c52c2c1178330a5456198}\label{classebml_1_1ebml__shared__ptr_a44fea3c2f04c52c2c1178330a5456198}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!swap@{swap}}
\index{swap@{swap}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{swap()}{swap()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
void \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::swap (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_ade40f3b88c0389ec9b94a5ac0bf843bc}\label{classebml_1_1ebml__shared__ptr_ade40f3b88c0389ec9b94a5ac0bf843bc}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!use\+\_\+count@{use\+\_\+count}}
\index{use\+\_\+count@{use\+\_\+count}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{use\+\_\+count()}{use\_count()}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
int \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::use\+\_\+count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a946d842dbf2fa0032ac0b40fbd1be1f0}\label{classebml_1_1ebml__shared__ptr_a946d842dbf2fa0032ac0b40fbd1be1f0}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+const\+\_\+pointer\+\_\+cast@{ebml\+\_\+const\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+const\+\_\+pointer\+\_\+cast@{ebml\+\_\+const\+\_\+pointer\+\_\+cast}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+const\+\_\+pointer\+\_\+cast}{ebml\_const\_pointer\_cast}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U , typename V $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$U$>$ ebml\+\_\+const\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a4e5f01516955b634f0a2db2817179260}\label{classebml_1_1ebml__shared__ptr_a4e5f01516955b634f0a2db2817179260}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+const\+\_\+pointer\+\_\+cast@{ebml\+\_\+const\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+const\+\_\+pointer\+\_\+cast@{ebml\+\_\+const\+\_\+pointer\+\_\+cast}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+const\+\_\+pointer\+\_\+cast}{ebml\_const\_pointer\_cast}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U , typename V $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$U$>$ ebml\+\_\+const\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&\&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_ae2f43ef29c97eef4ebeea4b59609235a}\label{classebml_1_1ebml__shared__ptr_ae2f43ef29c97eef4ebeea4b59609235a}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast@{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast@{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}{ebml\_dynamic\_pointer\_cast}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U , typename V $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$U$>$ ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_ad2ace5801a4c2c045566f612002a5b81}\label{classebml_1_1ebml__shared__ptr_ad2ace5801a4c2c045566f612002a5b81}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast@{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast@{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}{ebml\_dynamic\_pointer\_cast}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U , typename V $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$U$>$ ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&\&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_af229d30a57079c9d2ac1c4eca4f8a36c}\label{classebml_1_1ebml__shared__ptr_af229d30a57079c9d2ac1c4eca4f8a36c}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}}
\index{ebml\+\_\+shared\+\_\+ptr@{ebml\+\_\+shared\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+shared\+\_\+ptr}{ebml\_shared\_ptr}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U $>$ \\
friend class \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a5b095cf546cb10cc79098a3d5d109fb0}\label{classebml_1_1ebml__shared__ptr_a5b095cf546cb10cc79098a3d5d109fb0}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+static\+\_\+pointer\+\_\+cast@{ebml\+\_\+static\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+static\+\_\+pointer\+\_\+cast@{ebml\+\_\+static\+\_\+pointer\+\_\+cast}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+static\+\_\+pointer\+\_\+cast}{ebml\_static\_pointer\_cast}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U , typename V $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$U$>$ ebml\+\_\+static\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a1f8dc09a802a18745ef9b3df8153c046}\label{classebml_1_1ebml__shared__ptr_a1f8dc09a802a18745ef9b3df8153c046}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+static\+\_\+pointer\+\_\+cast@{ebml\+\_\+static\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+static\+\_\+pointer\+\_\+cast@{ebml\+\_\+static\+\_\+pointer\+\_\+cast}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+static\+\_\+pointer\+\_\+cast}{ebml\_static\_pointer\_cast}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U , typename V $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$U$>$ ebml\+\_\+static\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ V $>$ \&\&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a14acbb6e15cdaa0999271c4f42797f5e}\label{classebml_1_1ebml__shared__ptr_a14acbb6e15cdaa0999271c4f42797f5e}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ebml\+\_\+weak\+\_\+ptr@{ebml\+\_\+weak\+\_\+ptr}}
\index{ebml\+\_\+weak\+\_\+ptr@{ebml\+\_\+weak\+\_\+ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ebml\+\_\+weak\+\_\+ptr}{ebml\_weak\_ptr}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
template$<$typename U $>$ \\
friend class \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}\hspace{0.3cm}{\ttfamily [friend]}}



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_a088dfc89b1cd65138c363e019a75f9b2}\label{classebml_1_1ebml__shared__ptr_a088dfc89b1cd65138c363e019a75f9b2}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ctl@{ctl}}
\index{ctl@{ctl}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ctl}{ctl}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
\mbox{\hyperlink{structebml_1_1control__block}{control\+\_\+block}}$\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::ctl = nullptr\hspace{0.3cm}{\ttfamily [mutable]}, {\ttfamily [protected]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_aa1ec71683f2a4e3825f0a13c5df74f6c}\label{classebml_1_1ebml__shared__ptr_aa1ec71683f2a4e3825f0a13c5df74f6c}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!mutex@{mutex}}
\index{mutex@{mutex}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{mutex}{mutex}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
std\+::mutex \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::mutex\hspace{0.3cm}{\ttfamily [mutable]}, {\ttfamily [protected]}}

\mbox{\Hypertarget{classebml_1_1ebml__shared__ptr_ac6235a7b11ac7364ac75384743c2ee20}\label{classebml_1_1ebml__shared__ptr_ac6235a7b11ac7364ac75384743c2ee20}} 
\index{ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}!ptr@{ptr}}
\index{ptr@{ptr}!ebml\+::ebml\+\_\+shared\+\_\+ptr@{ebml\+::ebml\+\_\+shared\+\_\+ptr}}
\subsubsection{\texorpdfstring{ptr}{ptr}}
{\footnotesize\ttfamily template$<$typename T$>$ \\
T$\ast$ \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$\+::\mbox{\hyperlink{namespaceebml_a390a3cc4808943a10d4a6f1f912afaba}{ptr}} = nullptr\hspace{0.3cm}{\ttfamily [protected]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/libebml\+\_\+ng/\mbox{\hyperlink{ptrs_8h}{ptrs.\+h}}\end{DoxyCompactItemize}
