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


A range generator, similar to Python 3\textquotesingle{}s \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a6adbe653b83d357b9dfa6a1d18395aec}{range()}}.  




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

\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em A helper struct which acts as an iterator for the range elements, as they are generated on the fly. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a2ec5cc5af03e87e082703fb29a4f4572}{range\+\_\+t}} (Value min\+\_\+, Value max\+\_\+, Delta step\+\_\+=1)
\begin{DoxyCompactList}\small\item\em 2-\/ and 3-\/argument constructor. Explicitly specify start, end, and optionally the step amount. \end{DoxyCompactList}\item 
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_ac48a73eddbfedd4714eda4ddbce8d053}{range\+\_\+t}} (Value max\+\_\+)
\begin{DoxyCompactList}\small\item\em 1-\/argument constructor. Start is implicitly zero and step is 1 or -\/1, depending on the sign of max. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a64c25e73c5c58eb45b0bf706ed03e20b}{begin}} () const noexcept -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em Returns an iterator to the beginning of the range. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a1d8f892c77098798870887210be37c80}{end}} () const noexcept -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em Return an iterator to the end of the range. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a9d9403165a439cfd9893dd26f7495c11}{size}} () const noexcept -\/$>$ std\+::size\+\_\+t
\begin{DoxyCompactList}\small\item\em Returns the distance between start() and stop(). \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a4395d4280b05fa0a4c0525c4f2ed18c5}{empty}} () const noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Query whether the range will generate any elements. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Integral $>$ }\\constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_acb9981713f657ecb40ed3489b1db4492}{operator\mbox{[}$\,$\mbox{]}}} (Integral x) const noexcept -\/$>$ decltype(\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a64c25e73c5c58eb45b0bf706ed03e20b}{begin}}()\mbox{[}x\mbox{]})
\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a34a2d9ae88c513e4f6cc19ae82b85c11}{lesser}} () const noexcept(nothrow\+\_\+copyable) -\/$>$ Value
\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a36b83e0822fcdfde55ae93b5d753de7c}{greater}} () const noexcept(nothrow\+\_\+copyable) -\/$>$ Value
\item 
{\footnotesize template$<$typename Container , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$  = nullptr$>$ }\\\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a593f527b16d6f2d988c70cdf7857ebf0}{operator Container}} () const noexcept(noexcept(Container(std\+::declval$<$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$(), std\+::declval$<$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$())))
\begin{DoxyCompactList}\small\item\em Returns a linear container whose elements are this range. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Container , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+setlike\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$  = nullptr$>$ }\\\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a593f527b16d6f2d988c70cdf7857ebf0}{operator Container}} () const noexcept(noexcept(Container(std\+::declval$<$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$(), std\+::declval$<$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$())))
\begin{DoxyCompactList}\small\item\em Returns a setlike container whose elements are this range. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a40a7672ee50f6f1823e177d674df8a4c}{begin}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} \&r) noexcept -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em Returns an iterator to the beginning of the range. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a725f198750193671043f4a1ce06547e1}{end}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} \&r) noexcept -\/$>$ \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em Return an iterator to the end of the range. \end{DoxyCompactList}\item 
constexpr auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a1bc83d205dc56fe68f676e7f23c09f60}{size}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} \&r) noexcept -\/$>$ std\+::size\+\_\+t
\begin{DoxyCompactList}\small\item\em Returns the distance between start() and stop(). \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_ab49e34be5a3c024d4c978c02b30a8e8c}{operator==}} (\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} l, \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare l and r for equality. \end{DoxyCompactList}\item 
constexpr friend auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_abbaa2e24023c9366928dd4b5473db026}{operator!=}} (\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} l, \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}} r) noexcept -\/$>$ bool
\begin{DoxyCompactList}\small\item\em Compare l and r for inequality. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value, typename Delta$>$\newline
class KBLIB\+\_\+\+NS\+::range\+\_\+t$<$ Value, Delta $>$}
A range generator, similar to Python 3\textquotesingle{}s \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a6adbe653b83d357b9dfa6a1d18395aec}{range()}}. 

Generates a half-\/open range, \mbox{[}min, max). 
\begin{DoxyTemplParams}{Template Parameters}
{\em Value} & The type of elements in the range. Must support comparison (equality and relational) and subtraction, but does not strictly need to be numeric. Must be copyable. Must be value-\/initializable. Notably, Random\+Access\+Iterators are valid Value types. \\
\hline
{\em Delta} & A type used to mutate Value values. std\+::declval$<$\+Value$>$() + std\+::declval$<$\+Delta$>$() must be a valid expression and must return type Value. Delta must be implicitly constructible and assignable from, as well as comparable to, int. \\
\hline
\end{DoxyTemplParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00222}{222}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a2ec5cc5af03e87e082703fb29a4f4572}\label{class_k_b_l_i_b___n_s_1_1range__t_a2ec5cc5af03e87e082703fb29a4f4572}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!range\_t@{range\_t}}
\index{range\_t@{range\_t}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{range\_t()}{range\_t()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::range\+\_\+t (\begin{DoxyParamCaption}\item[{Value}]{min\+\_\+,  }\item[{Value}]{max\+\_\+,  }\item[{Delta}]{step\+\_\+ = {\ttfamily 1} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}



2-\/ and 3-\/argument constructor. Explicitly specify start, end, and optionally the step amount. 


\begin{DoxyParams}{Parameters}
{\em min\+\_\+} & The first value in the range. \\
\hline
{\em max\+\_\+} & The end of the range. \\
\hline
{\em step\+\_\+} & The difference between values in the range. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00240}{240}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

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



1-\/argument constructor. Start is implicitly zero and step is 1 or -\/1, depending on the sign of max. 


\begin{DoxyParams}{Parameters}
{\em max} & The end of the range. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{iterators_8h_source_l00252}{252}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a64c25e73c5c58eb45b0bf706ed03e20b}\label{class_k_b_l_i_b___n_s_1_1range__t_a64c25e73c5c58eb45b0bf706ed03e20b}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!begin@{begin}}
\index{begin@{begin}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}}
{\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 $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ \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]}}



Returns an iterator to the beginning of the range. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00377}{377}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a4395d4280b05fa0a4c0525c4f2ed18c5}\label{class_k_b_l_i_b___n_s_1_1range__t_a4395d4280b05fa0a4c0525c4f2ed18c5}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!empty@{empty}}
\index{empty@{empty}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{empty()}{empty()}}
{\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 $>$\+::empty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ bool \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Query whether the range will generate any elements. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00413}{413}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a1d8f892c77098798870887210be37c80}\label{class_k_b_l_i_b___n_s_1_1range__t_a1d8f892c77098798870887210be37c80}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!end@{end}}
\index{end@{end}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{end()}{end()}}
{\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 $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ \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]}}



Return an iterator to the end of the range. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00381}{381}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a36b83e0822fcdfde55ae93b5d753de7c}\label{class_k_b_l_i_b___n_s_1_1range__t_a36b83e0822fcdfde55ae93b5d753de7c}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!greater@{greater}}
\index{greater@{greater}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{greater()}{greater()}}
{\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 $>$\+::greater (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ Value \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00425}{425}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a34a2d9ae88c513e4f6cc19ae82b85c11}\label{class_k_b_l_i_b___n_s_1_1range__t_a34a2d9ae88c513e4f6cc19ae82b85c11}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!lesser@{lesser}}
\index{lesser@{lesser}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{lesser()}{lesser()}}
{\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 $>$\+::lesser (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ Value \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00421}{421}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a593f527b16d6f2d988c70cdf7857ebf0}\label{class_k_b_l_i_b___n_s_1_1range__t_a593f527b16d6f2d988c70cdf7857ebf0}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!operator Container@{operator Container}}
\index{operator Container@{operator Container}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{operator Container()}{operator Container()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
template$<$typename Container , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$  = nullptr$>$ \\
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::operator Container (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [noexcept]}}



Returns a linear container whose elements are this range. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00437}{437}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a593f527b16d6f2d988c70cdf7857ebf0}\label{class_k_b_l_i_b___n_s_1_1range__t_a593f527b16d6f2d988c70cdf7857ebf0}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!operator Container@{operator Container}}
\index{operator Container@{operator Container}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{operator Container()}{operator Container()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
template$<$typename Container , \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a99591fc5eb07c4adb7ec5f0998edb928}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+setlike\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$  = nullptr$>$ \\
\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{KBLIB\+\_\+\+NS\+::range\+\_\+t}}$<$ Value, Delta $>$\+::operator Container (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [noexcept]}}



Returns a setlike container whose elements are this range. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00451}{451}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_acb9981713f657ecb40ed3489b1db4492}\label{class_k_b_l_i_b___n_s_1_1range__t_acb9981713f657ecb40ed3489b1db4492}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}}
{\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 $>$\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{Integral}]{x }\end{DoxyParamCaption}) const -\/$>$ decltype(\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t_a64c25e73c5c58eb45b0bf706ed03e20b}{begin}}()\mbox{[}x\mbox{]}) \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{iterators_8h_source_l00416}{416}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a9d9403165a439cfd9893dd26f7495c11}\label{class_k_b_l_i_b___n_s_1_1range__t_a9d9403165a439cfd9893dd26f7495c11}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!size@{size}}
\index{size@{size}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{size()}{size()}}
{\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 $>$\+::size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Returns the distance between start() and stop(). 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00386}{386}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



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



Returns an iterator to the beginning of the range. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00393}{393}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

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



Return an iterator to the end of the range. 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00399}{399}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

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



Compare l and r for inequality. 

Ranges are equal when they generate identical ranges. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00472}{472}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

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



Compare l and r for equality. 

Ranges are equal when they generate identical ranges. 

Definition at line \mbox{\hyperlink{iterators_8h_source_l00462}{462}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.

\mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1range__t_a1bc83d205dc56fe68f676e7f23c09f60}\label{class_k_b_l_i_b___n_s_1_1range__t_a1bc83d205dc56fe68f676e7f23c09f60}} 
\index{KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}!size@{size}}
\index{size@{size}!KBLIB\_NS::range\_t$<$ Value, Delta $>$@{KBLIB\_NS::range\_t$<$ Value, Delta $>$}}
\doxysubsubsection{\texorpdfstring{size}{size}}
{\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\
constexpr auto size (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1range__t}{range\+\_\+t}}$<$ Value, Delta $>$ \&}]{r }\end{DoxyParamCaption}) -\/$>$ std\+::size\+\_\+t \hspace{0.3cm}{\ttfamily [friend]}}



Returns the distance between start() and stop(). 



Definition at line \mbox{\hyperlink{iterators_8h_source_l00406}{406}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}.



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