\hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{}\doxysection{KBLIB\+\_\+\+NS\+::range\+\_\+t\texorpdfstring{$<$}{<} Value, Delta \texorpdfstring{$>$}{>}\+::iterator Struct Reference}
\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}


A helper struct which acts as an iterator for the range elements, as they are generated on the fly.  




{\ttfamily \#include $<$kblib/iterators.\+h$>$}

\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ac1f5fbef6fbd6e0aa2f901f37034ac28}{difference\+\_\+type}} = std\+::ptrdiff\+\_\+t
\item 
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a7ef4708eb2cf747f57283c935535621d}{value\+\_\+type}} = Value
\item 
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_accd6c91fd638d2904fb3a12d34978d1e}{pointer}} = const Value $\ast$
\item 
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a8443bebbf5bc86221af77521d0d4082d}{reference}} = Value
\item 
using \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ad58ff0940e7768ed30effa6d0eb14fc4}{iterator\+\_\+category}} = std\+::input\+\_\+iterator\+\_\+tag
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a214bb3451ebf716d71d547344e3b4b61}{operator$\ast$}} () const noexcept(nothrow\+\_\+copyable) -\/$>$ Value
\begin{DoxyCompactList}\small\item\em Return the \char`\"{}pointed-\/to\char`\"{} value. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a057299e2b622b6c14d2ae6dfa20af74e}{operator-\/$>$}} () const noexcept -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_accd6c91fd638d2904fb3a12d34978d1e}{pointer}}
\begin{DoxyCompactList}\small\item\em Return a pointer to the value. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a0765e94044c9c2496ae251be3a7ee91e}{operator++}} () \&noexcept(nothrow\+\_\+steppable) -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} \&
\begin{DoxyCompactList}\small\item\em Prefix increment. Advance to the next value in the range. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a4b8cb51b264c35faf2c096f1f1450e19}{operator++}} (int) noexcept(nothrow\+\_\+steppable) -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em Postfix increment. Advance to the next value in the range, but return the current value. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_aedd06216c5ac2ca2813f87ede77c12f9}{operator\mbox{[}$\,$\mbox{]}}} (std\+::ptrdiff\+\_\+t x) const noexcept -\/$>$ Value
\item 
{\footnotesize template$<$typename Integral $>$ }\\constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_afa0fbdac2d98f931e619ae729e07a9b2}{operator\mbox{[}$\,$\mbox{]}}} (Integral x) const noexcept -\/$>$ Value
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
Value \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_acf40ee74ea7b2bab2a5da5a06a66266d}{val}}
\item 
Delta \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a6791ef1d75f5233b2f93c29d94174783}{step}}
\end{DoxyCompactItemize}
\doxysubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
constexpr friend auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ae3414fe5601b97423c7c90b08f393ab6}{operator==}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} l, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare two range iterators for equality. \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a316eeb0da30d5d2e13e4f74535642c9e}{operator!=}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} l, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare two range iterators for inequality. \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a34aba56ce509f4dfa3cf37b8a8de7f4b}{operator$<$}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} l, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare two range iterators. \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a71a14c52ef5888860d2f4886e772e570}{operator$<$=}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} l, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare two range iterators. \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a24fcdc24ff283706e475458b78987beb}{operator$>$}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} l, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare two range iterators. \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a574d1c5a42025e001b54abb21ce3a2ba}{operator$>$=}} (\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} l, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare two range iterators. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value, typename Delta$>$\newline
struct KBLIB\+\_\+\+NS\+::range\+\_\+t$<$ Value, Delta $>$\+::iterator}
A helper struct which acts as an iterator for the range elements, as they are generated on the fly. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00259}{259}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ac1f5fbef6fbd6e0aa2f901f37034ac28}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ac1f5fbef6fbd6e0aa2f901f37034ac28}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!difference\_type@{difference\_type}}
\index{difference\_type@{difference\_type}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{difference\_type}{difference\_type}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::difference\+\_\+type =  std\+::ptrdiff\+\_\+t}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00263}{263}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ad58ff0940e7768ed30effa6d0eb14fc4}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ad58ff0940e7768ed30effa6d0eb14fc4}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!iterator\_category@{iterator\_category}}
\index{iterator\_category@{iterator\_category}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{iterator\_category}{iterator\_category}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::iterator\+\_\+category =  std\+::input\+\_\+iterator\+\_\+tag}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00267}{267}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_accd6c91fd638d2904fb3a12d34978d1e}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_accd6c91fd638d2904fb3a12d34978d1e}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!pointer@{pointer}}
\index{pointer@{pointer}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{pointer}{pointer}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::pointer =  const Value$\ast$}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00265}{265}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a8443bebbf5bc86221af77521d0d4082d}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a8443bebbf5bc86221af77521d0d4082d}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!reference@{reference}}
\index{reference@{reference}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{reference}{reference}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::reference =  Value}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00266}{266}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a7ef4708eb2cf747f57283c935535621d}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a7ef4708eb2cf747f57283c935535621d}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!value\_type@{value\_type}}
\index{value\_type@{value\_type}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{value\_type}{value\_type}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::value\+\_\+type =  Value}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00264}{264}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a214bb3451ebf716d71d547344e3b4b61}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a214bb3451ebf716d71d547344e3b4b61}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ Value \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Return the \char`\"{}pointed-\/to\char`\"{} value. 

\begin{DoxyReturn}{Returns}
Value The value in the range this iterator corresponds to. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00274}{274}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a0765e94044c9c2496ae251be3a7ee91e}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a0765e94044c9c2496ae251be3a7ee91e}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator++@{operator++}}
\index{operator++@{operator++}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator++()}{operator++()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::operator++ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) \& -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Prefix increment. Advance to the next value in the range. 

\begin{DoxyReturn}{Returns}
iterator\& $\ast$this. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00289}{289}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a4b8cb51b264c35faf2c096f1f1450e19}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a4b8cb51b264c35faf2c096f1f1450e19}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator++@{operator++}}
\index{operator++@{operator++}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator++()}{operator++()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::operator++ (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Postfix increment. Advance to the next value in the range, but return the current value. 

\begin{DoxyReturn}{Returns}
iterator A copy of the pre-\/incrementing value of $\ast$this. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00299}{299}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a057299e2b622b6c14d2ae6dfa20af74e}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a057299e2b622b6c14d2ae6dfa20af74e}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_accd6c91fd638d2904fb3a12d34978d1e}{pointer}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Return a pointer to the value. 

\begin{DoxyReturn}{Returns}
pointer A pointer to a value equivalent to $\ast$($\ast$this). Valid until the iterator is modified in any way or destroyed. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00283}{283}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_afa0fbdac2d98f931e619ae729e07a9b2}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_afa0fbdac2d98f931e619ae729e07a9b2}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
template$<$typename Integral $>$ \\
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{Integral}]{x }\end{DoxyParamCaption}) const -\/$>$ Value \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00369}{369}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_aedd06216c5ac2ca2813f87ede77c12f9}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_aedd06216c5ac2ca2813f87ede77c12f9}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{std\+::ptrdiff\+\_\+t}]{x }\end{DoxyParamCaption}) const -\/$>$ Value \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00365}{365}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a316eeb0da30d5d2e13e4f74535642c9e}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a316eeb0da30d5d2e13e4f74535642c9e}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator"!=}{operator!=}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr friend auto operator!= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{l,  }\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{r }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}}



Compare two range iterators for inequality. 

Range iterators compare equal if they point to the same value and have the same step. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00320}{320}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a34aba56ce509f4dfa3cf37b8a8de7f4b}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a34aba56ce509f4dfa3cf37b8a8de7f4b}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator$<$}{operator<}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr friend auto operator$<$ (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{l,  }\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{r }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}}



Compare two range iterators. 

For range iterators, (A \texorpdfstring{$<$}{<} B) is true when A can be advanced until ($\ast$A -\/ $\ast$B) changes sign. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00330}{330}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a71a14c52ef5888860d2f4886e772e570}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a71a14c52ef5888860d2f4886e772e570}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator$<$=@{operator$<$=}}
\index{operator$<$=@{operator$<$=}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator$<$=}{operator<=}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr friend auto operator$<$= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{l,  }\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{r }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}}



Compare two range iterators. 

For range iterators, (A \texorpdfstring{$<$}{<} B) is true when A can be advanced until ($\ast$A -\/ $\ast$B) changes sign. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00342}{342}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ae3414fe5601b97423c7c90b08f393ab6}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_ae3414fe5601b97423c7c90b08f393ab6}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator==@{operator==}}
\index{operator==@{operator==}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator==}{operator==}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr friend auto operator== (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{l,  }\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{r }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}}



Compare two range iterators for equality. 

Range iterators compare equal if they point to the same value and have the same step. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00310}{310}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a24fcdc24ff283706e475458b78987beb}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a24fcdc24ff283706e475458b78987beb}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator$>$@{operator$>$}}
\index{operator$>$@{operator$>$}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator$>$}{operator>}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr friend auto operator$>$ (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{l,  }\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{r }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}}



Compare two range iterators. 

For range iterators, (A \texorpdfstring{$<$}{<} B) is true when A can be advanced until ($\ast$A -\/ $\ast$B) changes sign. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00352}{352}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a574d1c5a42025e001b54abb21ce3a2ba}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a574d1c5a42025e001b54abb21ce3a2ba}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!operator$>$=@{operator$>$=}}
\index{operator$>$=@{operator$>$=}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{operator$>$=}{operator>=}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr friend auto operator$>$= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{l,  }\item[{\mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}}]{r }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}}



Compare two range iterators. 

For range iterators, (A \texorpdfstring{$<$}{<} B) is true when A can be advanced until ($\ast$A -\/ $\ast$B) changes sign. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00361}{361}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a6791ef1d75f5233b2f93c29d94174783}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_a6791ef1d75f5233b2f93c29d94174783}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!step@{step}}
\index{step@{step}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{step}{step}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
Delta \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::step}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00261}{261}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_acf40ee74ea7b2bab2a5da5a06a66266d}\label{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator_acf40ee74ea7b2bab2a5da5a06a66266d}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}!val@{val}}
\index{val@{val}!KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator@{KBLIB\_NS::range\_t$<$ Value, Delta $>$::iterator}}
\doxysubsubsection{\texorpdfstring{val}{val}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
Value \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::iterator\+::val}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00260}{260}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
kblib/\mbox{\hyperlink{iterators_8h}{iterators.\+h}}\end{DoxyCompactItemize}
