\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 \hyperlink{structefl_1_1eina_1_1nonconst__container__value__type}{nonconst\+\_\+container\+\_\+value\+\_\+type}$<$ T $>$\+::type \hyperlink{structefl_1_1eina_1_1__range__template_ae1b1cb673c8d486c04c6421dbc905448}{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_ae1b1cb673c8d486c04c6421dbc905448}{value\+\_\+type}, Traits $>$, \hyperlink{structefl_1_1eina_1_1__const__range__template}{\+\_\+const\+\_\+range\+\_\+template}$<$ \hyperlink{structefl_1_1eina_1_1__range__template_ae1b1cb673c8d486c04c6421dbc905448}{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_ae1b1cb673c8d486c04c6421dbc905448}{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_ae1b1cb673c8d486c04c6421dbc905448}{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_ae1b1cb673c8d486c04c6421dbc905448}{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_ae1b1cb673c8d486c04c6421dbc905448}{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_ae5dfe256d24ef9a4fb302de3e0fac938}{const\+\_\+iterator}$<$ \hyperlink{structefl_1_1eina_1_1__range__template_ae1b1cb673c8d486c04c6421dbc905448}{value\+\_\+type} $>$\+::type \hyperlink{structefl_1_1eina_1_1__range__template_ae5dfe256d24ef9a4fb302de3e0fac938}{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_a6b4ea1d0bc89684eaa752d7651dd3d0a}{iterator}$<$ \hyperlink{structefl_1_1eina_1_1__range__template_ae1b1cb673c8d486c04c6421dbc905448}{value\+\_\+type} $>$\+::type \hyperlink{structefl_1_1eina_1_1__range__template_a6b4ea1d0bc89684eaa752d7651dd3d0a}{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 
\hyperlink{structefl_1_1eina_1_1__range__template_addae2532d3eab493d7a5bf41343284a6}{\+\_\+range\+\_\+template} ()\hypertarget{structefl_1_1eina_1_1__range__template_addae2532d3eab493d7a5bf41343284a6}{}\label{structefl_1_1eina_1_1__range__template_addae2532d3eab493d7a5bf41343284a6}

\begin{DoxyCompactList}\small\item\em Creates a singular range object. \end{DoxyCompactList}\item 
\hyperlink{structefl_1_1eina_1_1__range__template_a4e973842df714baf6300bfc7d51e9d37}{\+\_\+range\+\_\+template} (\hyperlink{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}{native\+\_\+handle\+\_\+type} handle)\hypertarget{structefl_1_1eina_1_1__range__template_a4e973842df714baf6300bfc7d51e9d37}{}\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}
\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[{\texorpdfstring{is\+\_\+mutable}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_ae18859df6474ea4cda21bc93274c256d}{}\label{structefl_1_1eina_1_1__range__template_ae18859df6474ea4cda21bc93274c256d}


Type that specifies if the elements can be modified. 

\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[{\texorpdfstring{value\+\_\+type}{value_type}}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef {\bf nonconst\+\_\+container\+\_\+value\+\_\+type}$<$T$>$\+::type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf value\+\_\+type}}\hypertarget{structefl_1_1eina_1_1__range__template_ae1b1cb673c8d486c04c6421dbc905448}{}\label{structefl_1_1eina_1_1__range__template_ae1b1cb673c8d486c04c6421dbc905448}


The type of each element. 

\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[{\texorpdfstring{\+\_\+base\+\_\+type}{_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}}\hypertarget{structefl_1_1eina_1_1__range__template_a3721a1360a66ffa71cde3bc0ffdc33aa}{}\label{structefl_1_1eina_1_1__range__template_a3721a1360a66ffa71cde3bc0ffdc33aa}


Type for the base class. 

\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[{\texorpdfstring{native\+\_\+handle\+\_\+type}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}{}\label{structefl_1_1eina_1_1__range__template_a7d6d3f3fad70ab4f7c2a5642b2ea733b}


Type for the native handle of the container. 

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


Type for a reference to an element. 

\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[{\texorpdfstring{const\+\_\+reference}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_af84d8bf0e2c389a731efbf6cc0edb41b}{}\label{structefl_1_1eina_1_1__range__template_af84d8bf0e2c389a731efbf6cc0edb41b}


Type for a constant reference to an element. 

\index{efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}!pointer@{pointer}}
\index{pointer@{pointer}!efl\+::eina\+::\+\_\+range\+\_\+template@{efl\+::eina\+::\+\_\+range\+\_\+template}}
\subsubsection[{\texorpdfstring{pointer}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_a3a4280291f1a67b04f91fa2cea18a898}{}\label{structefl_1_1eina_1_1__range__template_a3a4280291f1a67b04f91fa2cea18a898}


Type for a pointer to an element. 

\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[{\texorpdfstring{const\+\_\+pointer}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_afdec054074ea2cae5b1b8efdb2e15da6}{}\label{structefl_1_1eina_1_1__range__template_afdec054074ea2cae5b1b8efdb2e15da6}


Type for a constant pointer to an element. 

\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[{\texorpdfstring{const\+\_\+iterator}{const_iterator}}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename Traits$>$ typedef Traits\+::template {\bf const\+\_\+iterator}$<${\bf value\+\_\+type}$>$\+::type {\bf efl\+::eina\+::\+\_\+range\+\_\+template}$<$ T, Traits $>$\+::{\bf const\+\_\+iterator}}\hypertarget{structefl_1_1eina_1_1__range__template_ae5dfe256d24ef9a4fb302de3e0fac938}{}\label{structefl_1_1eina_1_1__range__template_ae5dfe256d24ef9a4fb302de3e0fac938}


Type for constant iterator to the range. 

\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[{\texorpdfstring{const\+\_\+reverse\+\_\+iterator}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_ada95e698a3c3db317b77bd096d624e07}{}\label{structefl_1_1eina_1_1__range__template_ada95e698a3c3db317b77bd096d624e07}


Type for constant reverse iterator to the range. 

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


Type for iterator to the range. 

\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[{\texorpdfstring{reverse\+\_\+iterator}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_a6f673a9c655ed734330792ee95b57ec0}{}\label{structefl_1_1eina_1_1__range__template_a6f673a9c655ed734330792ee95b57ec0}


Type for reverse iterator to the range. 

\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[{\texorpdfstring{size\+\_\+type}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_a5395df58d7bf0c4c82a24c61e4646763}{}\label{structefl_1_1eina_1_1__range__template_a5395df58d7bf0c4c82a24c61e4646763}


Type for size information. 

\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[{\texorpdfstring{difference\+\_\+type}{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}}\hypertarget{structefl_1_1eina_1_1__range__template_a5dbf3e600eb20450fc147ec375fbce2f}{}\label{structefl_1_1eina_1_1__range__template_a5dbf3e600eb20450fc147ec375fbce2f}


Type to represent the distance between two iterators. 

