\hypertarget{structefl_1_1eina_1_1__range__template}{\section{efl\+:\+:eina\+:\+:\+\_\+range\+\_\+template$<$ T, Traits $>$ Struct Template Reference}
\label{structefl_1_1eina_1_1__range__template}\index{efl\+::eina\+::\+\_\+range\+\_\+template$<$ T, Traits $>$@{efl\+::eina\+::\+\_\+range\+\_\+template$<$ T, Traits $>$}}
}


Range class.  


\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::integral\+\_\+constant\\*
$<$ bool,!std\+::is\+\_\+const$<$ T $>$\\*
\+::\hyperlink{classefl_1_1eina_1_1value}{value} $>$ \hyperlink{structefl_1_1eina_1_1__range__template_ae18859df6474ea4cda21bc93274c256d}{is\+\_\+mutable}
\begin{DoxyCompactList}\small\item\em Type that specifies if the elements can be modified. \end{DoxyCompactList}\item 
typedef std\+::remove\+\_\+const$<$ T $>$\\*
\+::type \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type}
\begin{DoxyCompactList}\small\item\em The type of each element. \end{DoxyCompactList}\item 
typedef std\+::conditional\\*
$<$ is\+\_\+mutable\+::value, \\*
\hyperlink{structefl_1_1eina_1_1__mutable__range__template}{\+\_\+mutable\+\_\+range\+\_\+template}\\*
$<$ \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type}, Traits $>$\\*
, \hyperlink{structefl_1_1eina_1_1__const__range__template}{\+\_\+const\+\_\+range\+\_\+template}\\*
$<$ \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type}, Traits $>$ $>$\+::type \hyperlink{structefl_1_1eina_1_1__range__template_a3721a1360a66ffa71cde3bc0ffdc33aa}{\+\_\+base\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for the base class. \end{DoxyCompactList}\item 
typedef \\*
\+\_\+base\+\_\+type\+::native\+\_\+handle\+\_\+type \hyperlink{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}{native\+\_\+handle\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for the native handle of the container. \end{DoxyCompactList}\item 
typedef \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type} \& \hyperlink{structefl_1_1eina_1_1__range__template_a915f6849c6818fab8030171d83ba5eb1}{reference}
\begin{DoxyCompactList}\small\item\em Type for a reference to an element. \end{DoxyCompactList}\item 
typedef \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type} const \& \hyperlink{structefl_1_1eina_1_1__range__template_af84d8bf0e2c389a731efbf6cc0edb41b}{const\+\_\+reference}
\begin{DoxyCompactList}\small\item\em Type for a constant reference to an element. \end{DoxyCompactList}\item 
typedef \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type} $\ast$ \hyperlink{structefl_1_1eina_1_1__range__template_a3a4280291f1a67b04f91fa2cea18a898}{pointer}
\begin{DoxyCompactList}\small\item\em Type for a pointer to an element. \end{DoxyCompactList}\item 
typedef \hyperlink{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{value\+\_\+type} const $\ast$ \hyperlink{structefl_1_1eina_1_1__range__template_afdec054074ea2cae5b1b8efdb2e15da6}{const\+\_\+pointer}
\begin{DoxyCompactList}\small\item\em Type for a constant pointer to an element. \end{DoxyCompactList}\item 
typedef Traits\+::template \\*
\hyperlink{structefl_1_1eina_1_1__range__template_a5b95b58284decd39a5cb825724b5e05b}{const\+\_\+iterator}$<$ T $>$\+::type \hyperlink{structefl_1_1eina_1_1__range__template_a5b95b58284decd39a5cb825724b5e05b}{const\+\_\+iterator}
\begin{DoxyCompactList}\small\item\em Type for constant iterator to the range. \end{DoxyCompactList}\item 
typedef \\*
\+\_\+base\+\_\+type\+::const\+\_\+reverse\+\_\+iterator \hyperlink{structefl_1_1eina_1_1__range__template_ada95e698a3c3db317b77bd096d624e07}{const\+\_\+reverse\+\_\+iterator}
\begin{DoxyCompactList}\small\item\em Type for constant reverse iterator to the range. \end{DoxyCompactList}\item 
typedef Traits\+::template \\*
\hyperlink{structefl_1_1eina_1_1__range__template_acf555a1e56918d4710aba3562eb9d8a9}{iterator}$<$ T $>$\+::type \hyperlink{structefl_1_1eina_1_1__range__template_acf555a1e56918d4710aba3562eb9d8a9}{iterator}
\begin{DoxyCompactList}\small\item\em Type for iterator to the range. \end{DoxyCompactList}\item 
typedef \\*
\+\_\+base\+\_\+type\+::reverse\+\_\+iterator \hyperlink{structefl_1_1eina_1_1__range__template_a6f673a9c655ed734330792ee95b57ec0}{reverse\+\_\+iterator}
\begin{DoxyCompactList}\small\item\em Type for reverse iterator to the range. \end{DoxyCompactList}\item 
typedef \+\_\+base\+\_\+type\+::size\+\_\+type \hyperlink{structefl_1_1eina_1_1__range__template_a5395df58d7bf0c4c82a24c61e4646763}{size\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type for size information. \end{DoxyCompactList}\item 
typedef \+\_\+base\+\_\+type\+::difference\+\_\+type \hyperlink{structefl_1_1eina_1_1__range__template_a5dbf3e600eb20450fc147ec375fbce2f}{difference\+\_\+type}
\begin{DoxyCompactList}\small\item\em Type to represent the distance between two iterators. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structefl_1_1eina_1_1__range__template_a4e973842df714baf6300bfc7d51e9d37}{\hyperlink{structefl_1_1eina_1_1__range__template_a4e973842df714baf6300bfc7d51e9d37}{\+\_\+range\+\_\+template} (\hyperlink{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}{native\+\_\+handle\+\_\+type} handle)}\label{structefl_1_1eina_1_1__range__template_a4e973842df714baf6300bfc7d51e9d37}

\begin{DoxyCompactList}\small\item\em Creates a range object wrapping the given native container handle. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T, typename Traits$>$struct efl\+::eina\+::\+\_\+range\+\_\+template$<$ T, Traits $>$}

Range class. 

Provide objects for accessing and/or modifying elements inside a container without modifying the container itself. 

\subsection{Member Typedef Documentation}
\hypertarget{structefl_1_1eina_1_1__range__template_ae18859df6474ea4cda21bc93274c256d}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!is\+\_\+mutable@{is\+\_\+mutable}}
\index{is\+\_\+mutable@{is\+\_\+mutable}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{is\+\_\+mutable}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef std\+::integral\+\_\+constant$<$bool, !std\+::is\+\_\+const$<$T$>$\+::{\bf value}$>$ {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf is\+\_\+mutable}}}\label{structefl_1_1eina_1_1__range__template_ae18859df6474ea4cda21bc93274c256d}


Type that specifies if the elements can be modified. 

\hypertarget{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!value\+\_\+type@{value\+\_\+type}}
\index{value\+\_\+type@{value\+\_\+type}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{value\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef std\+::remove\+\_\+const$<$T$>$\+::type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf value\+\_\+type}}}\label{structefl_1_1eina_1_1__range__template_a74fc848224da90856fa8a5851c66b705}


The type of each element. 

\hypertarget{structefl_1_1eina_1_1__range__template_a3721a1360a66ffa71cde3bc0ffdc33aa}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!\+\_\+base\+\_\+type@{\+\_\+base\+\_\+type}}
\index{\+\_\+base\+\_\+type@{\+\_\+base\+\_\+type}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{\+\_\+base\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef std\+::conditional$<$is\+\_\+mutable\+::value, {\bf \+\_\+mutable\+\_\+range\+\_\+template}$<${\bf value\+\_\+type}, Traits$>$ , {\bf \+\_\+const\+\_\+range\+\_\+template}$<${\bf value\+\_\+type}, Traits$>$ $>$\+::type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf \+\_\+base\+\_\+type}}}\label{structefl_1_1eina_1_1__range__template_a3721a1360a66ffa71cde3bc0ffdc33aa}


Type for the base class. 

\hypertarget{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!native\+\_\+handle\+\_\+type@{native\+\_\+handle\+\_\+type}}
\index{native\+\_\+handle\+\_\+type@{native\+\_\+handle\+\_\+type}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{native\+\_\+handle\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef \+\_\+base\+\_\+type\+::native\+\_\+handle\+\_\+type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf native\+\_\+handle\+\_\+type}}}\label{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}


Type for the native handle of the container. 

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


Type for a reference to an element. 

\hypertarget{structefl_1_1eina_1_1__range__template_af84d8bf0e2c389a731efbf6cc0edb41b}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!const\+\_\+reference@{const\+\_\+reference}}
\index{const\+\_\+reference@{const\+\_\+reference}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{const\+\_\+reference}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef {\bf value\+\_\+type} const\& {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf const\+\_\+reference}}}\label{structefl_1_1eina_1_1__range__template_af84d8bf0e2c389a731efbf6cc0edb41b}


Type for a constant reference to an element. 

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


Type for a pointer to an element. 

\hypertarget{structefl_1_1eina_1_1__range__template_afdec054074ea2cae5b1b8efdb2e15da6}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!const\+\_\+pointer@{const\+\_\+pointer}}
\index{const\+\_\+pointer@{const\+\_\+pointer}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{const\+\_\+pointer}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef {\bf value\+\_\+type} const$\ast$ {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf const\+\_\+pointer}}}\label{structefl_1_1eina_1_1__range__template_afdec054074ea2cae5b1b8efdb2e15da6}


Type for a constant pointer to an element. 

\hypertarget{structefl_1_1eina_1_1__range__template_a5b95b58284decd39a5cb825724b5e05b}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!const\+\_\+iterator@{const\+\_\+iterator}}
\index{const\+\_\+iterator@{const\+\_\+iterator}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{const\+\_\+iterator}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef Traits\+::template {\bf const\+\_\+iterator}$<$T$>$\+::type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf const\+\_\+iterator}}}\label{structefl_1_1eina_1_1__range__template_a5b95b58284decd39a5cb825724b5e05b}


Type for constant iterator to the range. 

\hypertarget{structefl_1_1eina_1_1__range__template_ada95e698a3c3db317b77bd096d624e07}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!const\+\_\+reverse\+\_\+iterator@{const\+\_\+reverse\+\_\+iterator}}
\index{const\+\_\+reverse\+\_\+iterator@{const\+\_\+reverse\+\_\+iterator}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{const\+\_\+reverse\+\_\+iterator}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef \+\_\+base\+\_\+type\+::const\+\_\+reverse\+\_\+iterator {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf const\+\_\+reverse\+\_\+iterator}}}\label{structefl_1_1eina_1_1__range__template_ada95e698a3c3db317b77bd096d624e07}


Type for constant reverse iterator to the range. 

\hypertarget{structefl_1_1eina_1_1__range__template_acf555a1e56918d4710aba3562eb9d8a9}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!iterator@{iterator}}
\index{iterator@{iterator}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{iterator}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef Traits\+::template {\bf iterator}$<$T$>$\+::type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf iterator}}}\label{structefl_1_1eina_1_1__range__template_acf555a1e56918d4710aba3562eb9d8a9}


Type for iterator to the range. 

\hypertarget{structefl_1_1eina_1_1__range__template_a6f673a9c655ed734330792ee95b57ec0}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!reverse\+\_\+iterator@{reverse\+\_\+iterator}}
\index{reverse\+\_\+iterator@{reverse\+\_\+iterator}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{reverse\+\_\+iterator}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef \+\_\+base\+\_\+type\+::reverse\+\_\+iterator {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf reverse\+\_\+iterator}}}\label{structefl_1_1eina_1_1__range__template_a6f673a9c655ed734330792ee95b57ec0}


Type for reverse iterator to the range. 

\hypertarget{structefl_1_1eina_1_1__range__template_a5395df58d7bf0c4c82a24c61e4646763}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!size\+\_\+type@{size\+\_\+type}}
\index{size\+\_\+type@{size\+\_\+type}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{size\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef \+\_\+base\+\_\+type\+::size\+\_\+type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf size\+\_\+type}}}\label{structefl_1_1eina_1_1__range__template_a5395df58d7bf0c4c82a24c61e4646763}


Type for size information. 

\hypertarget{structefl_1_1eina_1_1__range__template_a5dbf3e600eb20450fc147ec375fbce2f}{\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!difference\+\_\+type@{difference\+\_\+type}}
\index{difference\+\_\+type@{difference\+\_\+type}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{difference\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef \+\_\+base\+\_\+type\+::difference\+\_\+type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf difference\+\_\+type}}}\label{structefl_1_1eina_1_1__range__template_a5dbf3e600eb20450fc147ec375fbce2f}


Type to represent the distance between two iterators. 

