\hypertarget{structefl_1_1eina_1_1iterator}{}\section{efl\+:\+:eina\+:\+:iterator$<$ T, Enable $>$ Struct Template Reference}
\label{structefl_1_1eina_1_1iterator}\index{efl\+::eina\+::iterator$<$ T, Enable $>$@{efl\+::eina\+::iterator$<$ T, Enable $>$}}


C++ wrappers to the native {\ttfamily Eina\+\_\+\+Iterator}.  


\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a1df384cc8d0a007aadd98a078b41dff4}{base\+\_\+type\+::value\+\_\+type}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator_a806ec9c14e4863bc80befc6033a3d44d}{value\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Type for elements returned by the iterator. \end{DoxyCompactList}\item 
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_ad31200100695db5476c1e8e6c55b10e3}{base\+\_\+type\+::pointer}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator_acbcfe45d69b51c068d246674023cc4a6}{pointer}}
\begin{DoxyCompactList}\small\item\em Type for a pointer to an element. \end{DoxyCompactList}\item 
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a22be9b33485b688a901b9288287b5566}{base\+\_\+type\+::reference}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator_a1a9f7c774d36b5ed0e2fbbb8c5fd0a33}{reference}}
\begin{DoxyCompactList}\small\item\em Type for a reference to an element. \end{DoxyCompactList}\item 
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_af50b94e9f7e1c3baf9097e219fed4bb0}{base\+\_\+type\+::difference\+\_\+type}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator_a515eecf0b660e8fa0f8aa680133cb74b}{difference\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Type to represent the distance between two iterators. \end{DoxyCompactList}\item 
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a563972e9c30566a24d8d010f871fdb61}{base\+\_\+type\+::iterator\+\_\+category}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator_af2b8b3da135bd7560d0fd323f8d39174}{iterator\+\_\+category}}
\begin{DoxyCompactList}\small\item\em Defines the iterator category as the same of the base class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structefl_1_1eina_1_1iterator_a6a1b288e0fa1e117431ca1dcec3ee94c}{iterator}} (\mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}} $\ast$iterator\+\_\+=0)
\begin{DoxyCompactList}\small\item\em Creates a iterator wrapping the given native {\ttfamily Eina\+\_\+\+Iterator} handle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structefl_1_1eina_1_1iterator}{self\+\_\+type}} \& \mbox{\hyperlink{structefl_1_1eina_1_1iterator_a7126756d47361922ca94396756d8592f}{operator++}} ()
\begin{DoxyCompactList}\small\item\em Move the iterator to the next position. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structefl_1_1eina_1_1iterator}{self\+\_\+type}} \& \mbox{\hyperlink{structefl_1_1eina_1_1iterator_aaf4c7c135c92ba1cba1f0c92d1444978}{operator++}} (int)
\begin{DoxyCompactList}\small\item\em Move the iterator to the next position. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structefl_1_1eina_1_1iterator_a806ec9c14e4863bc80befc6033a3d44d}{value\+\_\+type}} \& \mbox{\hyperlink{structefl_1_1eina_1_1iterator_abefcb1d826e54d8ffc5d8be95df5303f}{operator$\ast$}} () const
\begin{DoxyCompactList}\small\item\em Get a reference to the element currently pointed by the iterator. \end{DoxyCompactList}\item 
\mbox{\hyperlink{structefl_1_1eina_1_1iterator_acbcfe45d69b51c068d246674023cc4a6}{pointer}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator_ac525b99b74583f20d900b90e59b1024e}{operator-\/$>$}} () const
\begin{DoxyCompactList}\small\item\em Return a pointer to the current element, which member will be accessed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T, typename Enable = void$>$\newline
struct efl\+::eina\+::iterator$<$ T, Enable $>$}

C++ wrappers to the native {\ttfamily Eina\+\_\+\+Iterator}. 

It provides a generic interface to the {\ttfamily Eina\+\_\+\+Iterator} functions, and automatically take care of allocating a deallocating resources using the R\+A\+II programming idiom. 

\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_a806ec9c14e4863bc80befc6033a3d44d}\label{structefl_1_1eina_1_1iterator_a806ec9c14e4863bc80befc6033a3d44d}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!value\+\_\+type@{value\+\_\+type}}
\index{value\+\_\+type@{value\+\_\+type}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{value\+\_\+type}{value\_type}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a1df384cc8d0a007aadd98a078b41dff4}{base\+\_\+type\+::value\+\_\+type}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::\mbox{\hyperlink{structefl_1_1eina_1_1iterator_a806ec9c14e4863bc80befc6033a3d44d}{value\+\_\+type}}}



Type for elements returned by the iterator. 

\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_acbcfe45d69b51c068d246674023cc4a6}\label{structefl_1_1eina_1_1iterator_acbcfe45d69b51c068d246674023cc4a6}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!pointer@{pointer}}
\index{pointer@{pointer}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{pointer}{pointer}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_ad31200100695db5476c1e8e6c55b10e3}{base\+\_\+type\+::pointer}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::\mbox{\hyperlink{structefl_1_1eina_1_1iterator_acbcfe45d69b51c068d246674023cc4a6}{pointer}}}



Type for a pointer to an element. 

\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_a1a9f7c774d36b5ed0e2fbbb8c5fd0a33}\label{structefl_1_1eina_1_1iterator_a1a9f7c774d36b5ed0e2fbbb8c5fd0a33}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!reference@{reference}}
\index{reference@{reference}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{reference}{reference}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a22be9b33485b688a901b9288287b5566}{base\+\_\+type\+::reference}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::\mbox{\hyperlink{structefl_1_1eina_1_1iterator_a1a9f7c774d36b5ed0e2fbbb8c5fd0a33}{reference}}}



Type for a reference to an element. 

\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_a515eecf0b660e8fa0f8aa680133cb74b}\label{structefl_1_1eina_1_1iterator_a515eecf0b660e8fa0f8aa680133cb74b}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!difference\+\_\+type@{difference\+\_\+type}}
\index{difference\+\_\+type@{difference\+\_\+type}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{difference\+\_\+type}{difference\_type}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_af50b94e9f7e1c3baf9097e219fed4bb0}{base\+\_\+type\+::difference\+\_\+type}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::\mbox{\hyperlink{structefl_1_1eina_1_1iterator_a515eecf0b660e8fa0f8aa680133cb74b}{difference\+\_\+type}}}



Type to represent the distance between two iterators. 

\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_af2b8b3da135bd7560d0fd323f8d39174}\label{structefl_1_1eina_1_1iterator_af2b8b3da135bd7560d0fd323f8d39174}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!iterator\+\_\+category@{iterator\+\_\+category}}
\index{iterator\+\_\+category@{iterator\+\_\+category}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{iterator\+\_\+category}{iterator\_category}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
typedef \mbox{\hyperlink{structefl_1_1eina_1_1__common__iterator__base_a563972e9c30566a24d8d010f871fdb61}{base\+\_\+type\+::iterator\+\_\+category}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::\mbox{\hyperlink{structefl_1_1eina_1_1iterator_af2b8b3da135bd7560d0fd323f8d39174}{iterator\+\_\+category}}}



Defines the iterator category as the same of the base class. 



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_a6a1b288e0fa1e117431ca1dcec3ee94c}\label{structefl_1_1eina_1_1iterator_a6a1b288e0fa1e117431ca1dcec3ee94c}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!iterator@{iterator}}
\index{iterator@{iterator}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{iterator()}{iterator()}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
\mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::\mbox{\hyperlink{structefl_1_1eina_1_1iterator}{iterator}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}} $\ast$}]{iterator\+\_\+ = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}



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

This constructor creates an iterator that wraps the given native {\ttfamily Eina\+\_\+\+Iterator} handle, providing a generic interface to it. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_a7126756d47361922ca94396756d8592f}\label{structefl_1_1eina_1_1iterator_a7126756d47361922ca94396756d8592f}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!operator++@{operator++}}
\index{operator++@{operator++}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{operator++()}{operator++()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
\mbox{\hyperlink{structefl_1_1eina_1_1iterator}{self\+\_\+type}}\& \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::operator++ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Move the iterator to the next position. 

\begin{DoxyReturn}{Returns}
The iterator itself.
\end{DoxyReturn}
This operator increments the iterator, making it point to the position right after the current one. At the end, it returns a reference to itself. 

References eina\+\_\+iterator\+\_\+next().

\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_aaf4c7c135c92ba1cba1f0c92d1444978}\label{structefl_1_1eina_1_1iterator_aaf4c7c135c92ba1cba1f0c92d1444978}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!operator++@{operator++}}
\index{operator++@{operator++}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{operator++()}{operator++()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
\mbox{\hyperlink{structefl_1_1eina_1_1iterator}{self\+\_\+type}}\& \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::operator++ (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Move the iterator to the next position. 

\begin{DoxyReturn}{Returns}
The iterator itself.
\end{DoxyReturn}
Works exactly like \mbox{\hyperlink{structefl_1_1eina_1_1iterator_a7126756d47361922ca94396756d8592f}{operator++()}}. \mbox{\Hypertarget{structefl_1_1eina_1_1iterator_abefcb1d826e54d8ffc5d8be95df5303f}\label{structefl_1_1eina_1_1iterator_abefcb1d826e54d8ffc5d8be95df5303f}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{operator$\ast$()}{operator*()}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
\mbox{\hyperlink{structefl_1_1eina_1_1iterator_a806ec9c14e4863bc80befc6033a3d44d}{value\+\_\+type}}\& \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get a reference to the element currently pointed by the iterator. 

\begin{DoxyReturn}{Returns}
Reference to the current element. 
\end{DoxyReturn}
\mbox{\Hypertarget{structefl_1_1eina_1_1iterator_ac525b99b74583f20d900b90e59b1024e}\label{structefl_1_1eina_1_1iterator_ac525b99b74583f20d900b90e59b1024e}} 
\index{efl\+::eina\+::iterator@{efl\+::eina\+::iterator}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!efl\+::eina\+::iterator@{efl\+::eina\+::iterator}}
\subsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}}
{\footnotesize\ttfamily template$<$typename T, typename Enable = void$>$ \\
\mbox{\hyperlink{structefl_1_1eina_1_1iterator_acbcfe45d69b51c068d246674023cc4a6}{pointer}} \mbox{\hyperlink{structefl_1_1eina_1_1iterator}{efl\+::eina\+::iterator}}$<$ T, Enable $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Return a pointer to the current element, which member will be accessed. 

\begin{DoxyReturn}{Returns}
Pointer to the element currently pointed by the iterator. 
\end{DoxyReturn}
