\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}