\hypertarget{structefl_1_1eina_1_1__common__iterator__base}{}\section{efl\+:\+:eina\+:\+:\+\_\+common\+\_\+iterator\+\_\+base$<$ T $>$ Struct Template Reference}
\label{structefl_1_1eina_1_1__common__iterator__base}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base$<$ T $>$@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base$<$ T $>$}}


Common implementations for iterators.  


\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef T const \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a0ed318ca1721779eebdce70065844f4a}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for elements returned by the iterator. \end{DoxyCompactList}\item 
typedef \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a0ed318ca1721779eebdce70065844f4a}{value\+\_\+type} $\ast$ \hyperlink{structefl_1_1eina_1_1__common__iterator__base_ad31200100695db5476c1e8e6c55b10e3}{pointer}
\begin{DoxyCompactList}\small\item\em Type for a pointer to an element. \end{DoxyCompactList}\item 
typedef \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a0ed318ca1721779eebdce70065844f4a}{value\+\_\+type} \& \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a22be9b33485b688a901b9288287b5566}{reference}
\begin{DoxyCompactList}\small\item\em Type for a reference to an element. \end{DoxyCompactList}\item 
typedef std\+::ptrdiff\+\_\+t \hyperlink{structefl_1_1eina_1_1__common__iterator__base_af50b94e9f7e1c3baf9097e219fed4bb0}{difference\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type to represent the distance between two iterators. \end{DoxyCompactList}\item 
typedef std\+::input\+\_\+iterator\+\_\+tag \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a563972e9c30566a24d8d010f871fdb61}{iterator\+\_\+category}
\begin{DoxyCompactList}\small\item\em Defines the iterator as being an input iterator. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a0caa6b08267852e9784b55fd2f34b453}{\+\_\+common\+\_\+iterator\+\_\+base} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a1c25d2b55bda51d6c6fe0f2d323064c6}{\+\_\+common\+\_\+iterator\+\_\+base} (\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator} $\ast$\hyperlink{structefl_1_1eina_1_1iterator}{iterator})
\begin{DoxyCompactList}\small\item\em Creates a iterator wrapping the given native {\ttfamily Eina\+\_\+\+Iterator} handle. \end{DoxyCompactList}\item 
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a3f2ea6198f2eed796f92e8e3ce6ab651}{}\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a3f2ea6198f2eed796f92e8e3ce6ab651}{$\sim$\+\_\+common\+\_\+iterator\+\_\+base} ()\label{structefl_1_1eina_1_1__common__iterator__base_a3f2ea6198f2eed796f92e8e3ce6ab651}

\begin{DoxyCompactList}\small\item\em Release the internal native Eina iterator handle. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1__common__iterator__base_ad89881a27ec47fdd3ccb3cb5e3dc4c63}{\+\_\+common\+\_\+iterator\+\_\+base} (\hyperlink{structefl_1_1eina_1_1__common__iterator__base}{self\+\_\+type} const \&other)
\begin{DoxyCompactList}\small\item\em Creates an iterator from another iterator of the same type. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1__common__iterator__base}{\+\_\+common\+\_\+iterator\+\_\+base} \& \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a2c3bea8566948dfe58f1e2cf645c11f9}{operator=} (\hyperlink{structefl_1_1eina_1_1__common__iterator__base}{self\+\_\+type} const \&other)
\begin{DoxyCompactList}\small\item\em Acquire the internal handle of the given iterator. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a6d00c3e5a1477714d3f1cb0b111e0a3d}{}\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator} $\ast$ {\bfseries \+\_\+iterator}\label{structefl_1_1eina_1_1__common__iterator__base_a6d00c3e5a1477714d3f1cb0b111e0a3d}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a199f3d5718b79e5a52b4c51716b14eed}{operator==} (\hyperlink{structefl_1_1eina_1_1__common__iterator__base}{\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&lhs, \hyperlink{structefl_1_1eina_1_1__common__iterator__base}{\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&rhs)
\begin{DoxyCompactList}\small\item\em Check if the iterators wrap the same handle. \end{DoxyCompactList}\item 
bool \hyperlink{structefl_1_1eina_1_1__common__iterator__base_a61f3d960ac6bd487fc4776da37786cca}{operator!=} (\hyperlink{structefl_1_1eina_1_1__common__iterator__base}{\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&lhs, \hyperlink{structefl_1_1eina_1_1__common__iterator__base}{\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&rhs)
\begin{DoxyCompactList}\small\item\em Check if the iterators wrap the different handles. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T$>$struct efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base$<$ T $>$}

Common implementations for iterators. 

\subsection{Member Typedef Documentation}
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a0ed318ca1721779eebdce70065844f4a}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!value\+\_\+type@{value\+\_\+type}}
\index{value\+\_\+type@{value\+\_\+type}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{value\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef T const {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf value\+\_\+type}}\label{structefl_1_1eina_1_1__common__iterator__base_a0ed318ca1721779eebdce70065844f4a}


Type for elements returned by the iterator. 

\hypertarget{structefl_1_1eina_1_1__common__iterator__base_ad31200100695db5476c1e8e6c55b10e3}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!pointer@{pointer}}
\index{pointer@{pointer}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{pointer}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef {\bf value\+\_\+type}$\ast$ {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf pointer}}\label{structefl_1_1eina_1_1__common__iterator__base_ad31200100695db5476c1e8e6c55b10e3}


Type for a pointer to an element. 

\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a22be9b33485b688a901b9288287b5566}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!reference@{reference}}
\index{reference@{reference}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{reference}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef {\bf value\+\_\+type}\& {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf reference}}\label{structefl_1_1eina_1_1__common__iterator__base_a22be9b33485b688a901b9288287b5566}


Type for a reference to an element. 

\hypertarget{structefl_1_1eina_1_1__common__iterator__base_af50b94e9f7e1c3baf9097e219fed4bb0}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!difference\+\_\+type@{difference\+\_\+type}}
\index{difference\+\_\+type@{difference\+\_\+type}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{difference\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef std\+::ptrdiff\+\_\+t {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf difference\+\_\+type}}\label{structefl_1_1eina_1_1__common__iterator__base_af50b94e9f7e1c3baf9097e219fed4bb0}


Type to represent the distance between two iterators. 

\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a563972e9c30566a24d8d010f871fdb61}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!iterator\+\_\+category@{iterator\+\_\+category}}
\index{iterator\+\_\+category@{iterator\+\_\+category}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{iterator\+\_\+category}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ typedef std\+::input\+\_\+iterator\+\_\+tag {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf iterator\+\_\+category}}\label{structefl_1_1eina_1_1__common__iterator__base_a563972e9c30566a24d8d010f871fdb61}


Defines the iterator as being an input iterator. 



\subsection{Constructor \& Destructor Documentation}
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a0caa6b08267852e9784b55fd2f34b453}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!\+\_\+common\+\_\+iterator\+\_\+base@{\+\_\+common\+\_\+iterator\+\_\+base}}
\index{\+\_\+common\+\_\+iterator\+\_\+base@{\+\_\+common\+\_\+iterator\+\_\+base}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{\+\_\+common\+\_\+iterator\+\_\+base}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf \+\_\+common\+\_\+iterator\+\_\+base} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{structefl_1_1eina_1_1__common__iterator__base_a0caa6b08267852e9784b55fd2f34b453}


Default constructor. 

Creates an iterator that points to nothing. \hypertarget{structefl_1_1eina_1_1__common__iterator__base_a1c25d2b55bda51d6c6fe0f2d323064c6}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!\+\_\+common\+\_\+iterator\+\_\+base@{\+\_\+common\+\_\+iterator\+\_\+base}}
\index{\+\_\+common\+\_\+iterator\+\_\+base@{\+\_\+common\+\_\+iterator\+\_\+base}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{\+\_\+common\+\_\+iterator\+\_\+base}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf \+\_\+common\+\_\+iterator\+\_\+base} (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Iterator} $\ast$}]{iterator}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}\label{structefl_1_1eina_1_1__common__iterator__base_a1c25d2b55bda51d6c6fe0f2d323064c6}


Creates a iterator wrapping the given native {\ttfamily Eina\+\_\+\+Iterator} handle. 


\begin{DoxyParams}{Parameters}
{\em iterator} & Handle to a native {\ttfamily Eina\+\_\+\+Iterator}.\\
\hline
\end{DoxyParams}
This constructor creates an iterator that wraps the given native {\ttfamily Eina\+\_\+\+Iterator} handle, providing an O\+O\+P interface to it.

\begin{DoxyWarning}{Warning}
The created iterator object gains ownership of the handle and will deallocate it at destruction time. 
\end{DoxyWarning}
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_ad89881a27ec47fdd3ccb3cb5e3dc4c63}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!\+\_\+common\+\_\+iterator\+\_\+base@{\+\_\+common\+\_\+iterator\+\_\+base}}
\index{\+\_\+common\+\_\+iterator\+\_\+base@{\+\_\+common\+\_\+iterator\+\_\+base}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{\+\_\+common\+\_\+iterator\+\_\+base}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::{\bf \+\_\+common\+\_\+iterator\+\_\+base} (
\begin{DoxyParamCaption}
\item[{{\bf self\+\_\+type} const \&}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{structefl_1_1eina_1_1__common__iterator__base_ad89881a27ec47fdd3ccb3cb5e3dc4c63}


Creates an iterator from another iterator of the same type. 


\begin{DoxyParams}{Parameters}
{\em other} & Another iterator of the same type.\\
\hline
\end{DoxyParams}
\begin{DoxyWarning}{Warning}
The supplied iterator transfer its internal handle to the new iterator, thus {\ttfamily other} will point to nothing after the call of this constructor. 
\end{DoxyWarning}


\subsection{Member Function Documentation}
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a2c3bea8566948dfe58f1e2cf645c11f9}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!operator=@{operator=}}
\index{operator=@{operator=}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ {\bf \+\_\+common\+\_\+iterator\+\_\+base}\& {\bf efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$\+::operator= (
\begin{DoxyParamCaption}
\item[{{\bf self\+\_\+type} const \&}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{structefl_1_1eina_1_1__common__iterator__base_a2c3bea8566948dfe58f1e2cf645c11f9}


Acquire the internal handle of the given iterator. 


\begin{DoxyParams}{Parameters}
{\em other} & Another iterator of the same type. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Reference for itself.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
The supplied iterator transfer its internal handle to the new iterator, thus {\ttfamily other} will point to nothing after the call of this constructor. 
\end{DoxyWarning}


\subsection{Friends And Related Function Documentation}
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a199f3d5718b79e5a52b4c51716b14eed}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!operator==@{operator==}}
\index{operator==@{operator==}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ bool operator== (
\begin{DoxyParamCaption}
\item[{{\bf \+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&}]{lhs, }
\item[{{\bf \+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&}]{rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}\label{structefl_1_1eina_1_1__common__iterator__base_a199f3d5718b79e5a52b4c51716b14eed}


Check if the iterators wrap the same handle. 


\begin{DoxyParams}{Parameters}
{\em lhs} & Iterator at the left side of the expression. \\
\hline
{\em lhs} & Iterator at the right side of the expression. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if both iterators wrap the same handle, {\ttfamily false} otherwise. 
\end{DoxyReturn}
\hypertarget{structefl_1_1eina_1_1__common__iterator__base_a61f3d960ac6bd487fc4776da37786cca}{}\index{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base@{efl\+::eina\+::\+\_\+common\+\_\+iterator\+\_\+base}}
\subsubsection[{operator"!=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T$>$ bool operator!= (
\begin{DoxyParamCaption}
\item[{{\bf \+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&}]{lhs, }
\item[{{\bf \+\_\+common\+\_\+iterator\+\_\+base}$<$ T $>$ const \&}]{rhs}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}\label{structefl_1_1eina_1_1__common__iterator__base_a61f3d960ac6bd487fc4776da37786cca}


Check if the iterators wrap the different handles. 


\begin{DoxyParams}{Parameters}
{\em lhs} & Iterator at the left side of the expression. \\
\hline
{\em lhs} & Iterator at the right side of the expression. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if the iterators wrap different handles, {\ttfamily false} otherwise. 
\end{DoxyReturn}
