\hypertarget{dev__iterators_8h}{}\section{include/utl/dev/dev\+\_\+iterators.h File Reference}
\label{dev__iterators_8h}\index{include/utl/dev/dev\+\_\+iterators.\+h@{include/utl/dev/dev\+\_\+iterators.\+h}}


Iterator collection for devices.  


{\ttfamily \#include $<$utl/core/impl.\+h$>$}\newline
{\ttfamily \#include $<$utl/meta/meta.\+h$>$}\newline
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structutl_1_1dev__iterator__traits}{utl\+::dev\+\_\+iterator\+\_\+traits$<$ \+\_\+\+Cat, \+\_\+\+Tp, \+\_\+\+Diff $>$}}
\begin{DoxyCompactList}\small\item\em Device iterator collection. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1output__iterator__tag}{utl\+::output\+\_\+iterator\+\_\+tag}}
\begin{DoxyCompactList}\small\item\em Iterator tags \mbox{[}std.\+iterator.\+tags\mbox{]} Extension\+: \mbox{\hyperlink{structutl_1_1contiguous__iterator__tag}{contiguous\+\_\+iterator\+\_\+tag}} for denoting contiguous iterators. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1input__iterator__tag}{utl\+::input\+\_\+iterator\+\_\+tag}}
\item 
struct \mbox{\hyperlink{structutl_1_1forward__iterator__tag}{utl\+::forward\+\_\+iterator\+\_\+tag}}
\item 
struct \mbox{\hyperlink{structutl_1_1bidirectional__iterator__tag}{utl\+::bidirectional\+\_\+iterator\+\_\+tag}}
\item 
struct \mbox{\hyperlink{structutl_1_1random__access__iterator__tag}{utl\+::random\+\_\+access\+\_\+iterator\+\_\+tag}}
\item 
struct \mbox{\hyperlink{structutl_1_1contiguous__iterator__tag}{utl\+::contiguous\+\_\+iterator\+\_\+tag}}
\item 
class \mbox{\hyperlink{classutl_1_1ostreamdev__it}{utl\+::ostreamdev\+\_\+it$<$ cont\+\_\+t, data\+\_\+t $>$}}
\item 
class \mbox{\hyperlink{classutl_1_1istreamdev__it}{utl\+::istreamdev\+\_\+it$<$ cont\+\_\+t, data\+\_\+t $>$}}
\item 
class \mbox{\hyperlink{classutl_1_1outdev__it}{utl\+::outdev\+\_\+it$<$ cont\+\_\+t, iter\+\_\+t, \+\_\+beg, \+\_\+end $>$}}
\begin{DoxyCompactList}\small\item\em Output device iterator type. We \char`\"{}future call\char`\"{} interface methods from owner class to provide iterator functionality. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1outdev__it__details_1_1is__outdev__it__}{utl\+::outdev\+\_\+it\+\_\+details\+::is\+\_\+outdev\+\_\+it\+\_\+$<$ \+\_\+\+Tp, typename $>$}}
\begin{DoxyCompactList}\small\item\em Primary template to catch any non S\+PI interface types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1outdev__it__details_1_1is__outdev__it___3_01___tp_00_01meta_1_1void__t_3_01typename8786ebbbd0dc9ca1b14571e779d99d60}{utl\+::outdev\+\_\+it\+\_\+details\+::is\+\_\+outdev\+\_\+it\+\_\+$<$ \+\_\+\+Tp, meta\+::void\+\_\+t$<$ typename \+\_\+\+Tp\+::value\+\_\+type, typename \+\_\+\+Tp\+::difference\+\_\+type, typename \+\_\+\+Tp\+::pointer, typename \+\_\+\+Tp\+::reference, void $>$ $>$}}
\begin{DoxyCompactList}\small\item\em template to catch a proper S\+PI interface type \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classutl_1_1indev__it}{utl\+::indev\+\_\+it$<$ cont\+\_\+t, iter\+\_\+t, \+\_\+beg, \+\_\+size $>$}}
\begin{DoxyCompactList}\small\item\em Input device iterator type. We \char`\"{}future call\char`\"{} interface methods from owner class to provide iterator functionality. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1indev__it__details_1_1is__indev__it__}{utl\+::indev\+\_\+it\+\_\+details\+::is\+\_\+indev\+\_\+it\+\_\+$<$ \+\_\+\+Tp, typename $>$}}
\begin{DoxyCompactList}\small\item\em Primary template to catch any non S\+PI interface types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1indev__it__details_1_1is__indev__it___3_01___tp_00_01meta_1_1void__t_3_01typename_06508604dcee4010234c84cc332fa196b}{utl\+::indev\+\_\+it\+\_\+details\+::is\+\_\+indev\+\_\+it\+\_\+$<$ \+\_\+\+Tp, meta\+::void\+\_\+t$<$ typename \+\_\+\+Tp\+::value\+\_\+type, typename \+\_\+\+Tp\+::difference\+\_\+type, typename \+\_\+\+Tp\+::pointer, typename \+\_\+\+Tp\+::reference, void $>$ $>$}}
\begin{DoxyCompactList}\small\item\em template to catch a proper S\+PI interface type \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classutl_1_1iodev__it}{utl\+::iodev\+\_\+it$<$ cont\+\_\+t, iter\+\_\+t, \+\_\+beg, \+\_\+size $>$}}
\begin{DoxyCompactList}\small\item\em Indexed device iterator type. We \char`\"{}future call\char`\"{} interface methods from owner class to provide iterator functionality. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1idxdev__it__details_1_1is__idxdev__it__}{utl\+::idxdev\+\_\+it\+\_\+details\+::is\+\_\+idxdev\+\_\+it\+\_\+$<$ \+\_\+\+Tp, typename $>$}}
\begin{DoxyCompactList}\small\item\em Primary template to catch any non S\+PI interface types. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1idxdev__it__details_1_1is__idxdev__it___3_01___tp_00_01meta_1_1void__t_3_01typenamebd9ada52ca7b7570c26d0c280af5e635}{utl\+::idxdev\+\_\+it\+\_\+details\+::is\+\_\+idxdev\+\_\+it\+\_\+$<$ \+\_\+\+Tp, meta\+::void\+\_\+t$<$ typename \+\_\+\+Tp\+::value\+\_\+type, typename \+\_\+\+Tp\+::difference\+\_\+type, typename \+\_\+\+Tp\+::pointer, typename \+\_\+\+Tp\+::reference, void $>$ $>$}}
\begin{DoxyCompactList}\small\item\em template to catch a proper S\+PI interface type \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \mbox{\hyperlink{namespaceutl}{utl}}
\begin{DoxyCompactList}\small\item\em S\+TL\textquotesingle{}s core language concepts. \end{DoxyCompactList}\item 
 \mbox{\hyperlink{namespaceutl_1_1outdev__it__details}{utl\+::outdev\+\_\+it\+\_\+details}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1indev__it__details}{utl\+::indev\+\_\+it\+\_\+details}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1idxdev__it__details}{utl\+::idxdev\+\_\+it\+\_\+details}}
\end{DoxyCompactItemize}
\subsection*{Functions}
\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename \+\_\+\+C1 , typename \+\_\+\+D1 , typename \+\_\+\+C2 , typename \+\_\+\+D2 $>$ }\\bool \mbox{\hyperlink{namespaceutl_a5ba78d196f9abb63a1d2fff13cabe636}{utl\+::operator==}} (const istreamdev\+\_\+it$<$ \+\_\+\+C1, \+\_\+\+D1 $>$ \&lhs, const istreamdev\+\_\+it$<$ \+\_\+\+C2, \+\_\+\+D2 $>$ \&rhs) noexcept
\begin{DoxyCompactList}\small\item\em Equality comparison template so that comparison between cv-\/qualified and non-\/cv-\/qualified iterators be valid. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename \+\_\+\+C1 , typename \+\_\+\+D1 , typename \+\_\+\+C2 , typename \+\_\+\+D2 $>$ }\\bool \mbox{\hyperlink{namespaceutl_aa7a25ea4d2598ec5db5b37bfaaf55ec3}{utl\+::operator!=}} (const istreamdev\+\_\+it$<$ \+\_\+\+C1, \+\_\+\+D1 $>$ \&lhs, const istreamdev\+\_\+it$<$ \+\_\+\+C2, \+\_\+\+D2 $>$ \&rhs) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, index\+\_\+t \+\_\+end1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, index\+\_\+t \+\_\+end2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a6726b451c897c4581e8781a819c025ba}{utl\+::operator==}} (const outdev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+end1 $>$ \&lhs, const outdev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+end2 $>$ \&rhs) noexcept
\begin{DoxyCompactList}\small\item\em Equality comparison template so that comparison between cv-\/qualified and non-\/cv-\/qualified iterators be valid. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, index\+\_\+t \+\_\+end1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, index\+\_\+t \+\_\+end2$>$ }\\bool \mbox{\hyperlink{namespaceutl_ada8975062732a20074909f8a3f609538}{utl\+::operator!=}} (const outdev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+end1 $>$ \&lhs, const outdev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+end2 $>$ \&rhs) noexcept
\begin{DoxyCompactList}\small\item\em Inequality comparison template so that comparison between cv-\/qualified and non-\/cv-\/qualified iterators be valid. \end{DoxyCompactList}\end{DoxyCompactItemize}

\begin{Indent}\textbf{ indev\+\_\+it Equality\+Comparable \&\& Less\+Than\+Comparable requirements}\par
{\em comparison template so that comparison between cv-\/qualified and non-\/cv-\/qualified iterators be valid }\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_aa30fa8ed97138ea75003069144f78e97}{utl\+::operator==}} (const indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const indev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_aac9f2116bf5b1463391b2a5ec437ef1d}{utl\+::operator$<$}} (const indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const indev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\begin{DoxyCompactList}\small\item\em Less than. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a15d049c37bf09ffb29f2a0c0070bf89c}{utl\+::operator!=}} (const indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const indev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a93043b2e245bb724c9c2e89577222532}{utl\+::operator$<$=}} (const indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const indev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a254af18987f59f185ceeaac1aaf3c1e1}{utl\+::operator$>$}} (const indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const indev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_abdada8bc0cbd311c4dea3dde078f5483}{utl\+::operator$>$=}} (const indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const indev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a7ad3384389159ce575279712fb92e3c6}{utl\+::operator==}} (const iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const iodev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_aacd0760a2943441abcc86ef9d825c8b0}{utl\+::operator$<$}} (const iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const iodev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\begin{DoxyCompactList}\small\item\em Less than. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a388830b63c30f5ee32a3e2a761c703c8}{utl\+::operator!=}} (const iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const iodev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_aa369d59a59c21d50b371b5db6195b043}{utl\+::operator$<$=}} (const iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const iodev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a623dee5dafd7fe274dc205c3e20c96af}{utl\+::operator$>$}} (const iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const iodev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\bool \mbox{\hyperlink{namespaceutl_a1988125a6394416aaf6ae85eaafa3ec4}{utl\+::operator$>$=}} (const iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, const iodev\+\_\+it$<$ \+\_\+\+Cont2, \+\_\+\+It2, \+\_\+beg2, \+\_\+size2 $>$ \&y) noexcept
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ iterator arithmetic}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\auto \mbox{\hyperlink{namespaceutl_aae4b45dc79b7d9b85e0bf83278f88508}{utl\+::operator-\/}} (indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, indev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&y) noexcept -\/$>$ decltype(x.\+cursor() -\/ y.\+cursor())
\item 
{\footnotesize template$<$typename \+\_\+\+Cont , typename \+\_\+\+It , index\+\_\+t \+\_\+beg, size\+\_\+t \+\_\+size$>$ }\\indev\+\_\+it$<$ \+\_\+\+Cont, \+\_\+\+It, \+\_\+beg, \+\_\+size $>$ \mbox{\hyperlink{namespaceutl_a69289a7a150563ce48244d7f39b33dbb}{utl\+::operator+}} (typename \+\_\+\+Cont\+::difference\+\_\+type n, indev\+\_\+it$<$ \+\_\+\+Cont, \+\_\+\+It, \+\_\+beg, \+\_\+size $>$ \&it) noexcept
\item 
{\footnotesize template$<$typename \+\_\+\+Cont1 , typename \+\_\+\+It1 , index\+\_\+t \+\_\+beg1, size\+\_\+t \+\_\+size1, typename \+\_\+\+Cont2 , typename \+\_\+\+It2 , index\+\_\+t \+\_\+beg2, size\+\_\+t \+\_\+size2$>$ }\\auto \mbox{\hyperlink{namespaceutl_a191590b661dc64e2fd487adb6b5e8889}{utl\+::operator-\/}} (iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&x, iodev\+\_\+it$<$ \+\_\+\+Cont1, \+\_\+\+It1, \+\_\+beg1, \+\_\+size1 $>$ \&y) noexcept -\/$>$ decltype(x.\+cursor() -\/ y.\+cursor())
\item 
{\footnotesize template$<$typename \+\_\+\+Cont , typename \+\_\+\+It , index\+\_\+t \+\_\+beg, size\+\_\+t \+\_\+size$>$ }\\iodev\+\_\+it$<$ \+\_\+\+Cont, \+\_\+\+It, \+\_\+beg, \+\_\+size $>$ \mbox{\hyperlink{namespaceutl_a829bc4894560bf7e0a6fd829ac9d3c10}{utl\+::operator+}} (typename \+\_\+\+Cont\+::difference\+\_\+type n, iodev\+\_\+it$<$ \+\_\+\+Cont, \+\_\+\+It, \+\_\+beg, \+\_\+size $>$ \&it) noexcept
\end{DoxyCompactItemize}
\end{Indent}


\subsection{Detailed Description}
Iterator collection for devices. 

Copyright (C) 2018 Christos Choutouridis

This program is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Lesser General Public License for more details.

You should have received a copy of the G\+NU Lesser General Public License along with this program. If not, see \href{http://www.gnu.org/licenses/}{\tt http\+://www.\+gnu.\+org/licenses/}. 