\hypertarget{group__ptr__module}{}\section{Pointers and Memory Management}
\label{group__ptr__module}\index{Pointers and Memory Management@{Pointers and Memory Management}}


Classes and templates for managing object ownership and memory.  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+::ebml\+\_\+shared\+\_\+ptr$<$ T $>$}}
\begin{DoxyCompactList}\small\item\em A drop-\/in replacement for std\+::shared\+\_\+ptr tailored for E\+B\+ML objects. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+::ebml\+\_\+weak\+\_\+ptr$<$ T $>$}}
\begin{DoxyCompactList}\small\item\em A drop-\/in replacement for std\+::weak\+\_\+ptr tailored for E\+B\+ML objects. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_gac3a42a1c40be6b3f88650077df49f31e}{ebml\+::ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_ga76e538181a9019d6c04faef20e7cdd18}{ebml\+::ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&\&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_ga487bd6f565bf6ff453feedc8a4c3ce2f}{ebml\+::ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ U $>$ \&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_ga8ab7688748082463e132c022c86db921}{ebml\+::ebml\+\_\+static\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_gab2b8fbaa81be133c5c184b5a9d848381}{ebml\+::ebml\+\_\+static\+\_\+pointer\+\_\+cast}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&\&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_ga06114b25d874278f66942e46ee88bcba}{ebml\+::ebml\+\_\+static\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ U $>$ \&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_ga433a420ceb483bb7fbe44d35203bc5ed}{ebml\+::ebml\+\_\+const\+\_\+pointer\+\_\+cast}} (const \mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&)
\item 
{\footnotesize template$<$typename T , typename U $>$ }\\\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ T $>$ \mbox{\hyperlink{group__ptr__module_gad739d3d3a9649ddacc092f94fb3d4230}{ebml\+::ebml\+\_\+const\+\_\+pointer\+\_\+cast}} (\mbox{\hyperlink{classebml_1_1ebml__shared__ptr}{ebml\+\_\+shared\+\_\+ptr}}$<$ U $>$ \&\&)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Classes and templates for managing object ownership and memory. 

This module defines the custom smart pointer types and other utilities used internally by the library to ensure safe and efficient memory management. 

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

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

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

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

\mbox{\Hypertarget{group__ptr__module_ga487bd6f565bf6ff453feedc8a4c3ce2f}\label{group__ptr__module_ga487bd6f565bf6ff453feedc8a4c3ce2f}} 
\index{Pointers and Memory Management@{Pointers and Memory Management}!ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast@{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast@{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast}!Pointers and Memory Management@{Pointers and Memory Management}}
\subsubsection{\texorpdfstring{ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast()}{ebml\_dynamic\_pointer\_cast()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename T , typename U $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ T $>$ ebml\+::ebml\+\_\+dynamic\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ U $>$ \&}]{other }\end{DoxyParamCaption})}

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

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

\mbox{\Hypertarget{group__ptr__module_ga06114b25d874278f66942e46ee88bcba}\label{group__ptr__module_ga06114b25d874278f66942e46ee88bcba}} 
\index{Pointers and Memory Management@{Pointers and Memory Management}!ebml\+\_\+static\+\_\+pointer\+\_\+cast@{ebml\+\_\+static\+\_\+pointer\+\_\+cast}}
\index{ebml\+\_\+static\+\_\+pointer\+\_\+cast@{ebml\+\_\+static\+\_\+pointer\+\_\+cast}!Pointers and Memory Management@{Pointers and Memory Management}}
\subsubsection{\texorpdfstring{ebml\+\_\+static\+\_\+pointer\+\_\+cast()}{ebml\_static\_pointer\_cast()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily template$<$typename T , typename U $>$ \\
\mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ T $>$ ebml\+::ebml\+\_\+static\+\_\+pointer\+\_\+cast (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classebml_1_1ebml__weak__ptr}{ebml\+\_\+weak\+\_\+ptr}}$<$ U $>$ \&}]{other }\end{DoxyParamCaption})}

