\hypertarget{classkblib_1_1range__t}{}\doxysection{kblib\+::range\+\_\+t\texorpdfstring{$<$}{<} Value, Delta \texorpdfstring{$>$}{>} Class Template Reference} \label{classkblib_1_1range__t}\index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} A range generator, similar to Python 3\textquotesingle{}s \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{range()}}. {\ttfamily \#include $<$kblib/iterators.\+h$>$} \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_ae3de19c205331d5a959f14b8eb912ec7}{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{classkblib_1_1range__t_aa5a309c3eb79e6d76d685ecac0caece4}{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{classkblib_1_1range__t_ad99bfa41676f9181d7597fb21a8b1ed2}{begin}} () const noexcept -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a622a7bd9c78e511f70a3dd229871bad1}{end}} () const noexcept -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_aa16e18d4ea94674c40e7c33586b4a9de}{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{classkblib_1_1range__t_a97e080e5dba3337466df2f2cbed97cee}{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{classkblib_1_1range__t_a277f45f3498f7cdac0e3f1852e89d89b}{operator\mbox{[}$\,$\mbox{]}}} (Integral x) const noexcept -\/$>$ decltype(\mbox{\hyperlink{classkblib_1_1range__t_ad99bfa41676f9181d7597fb21a8b1ed2}{begin}}()\mbox{[}x\mbox{]}) \item constexpr auto \mbox{\hyperlink{classkblib_1_1range__t_a4e3345239799479144706b6e75ec32db}{lesser}} () const noexcept(nothrow\+\_\+copyable) -\/$>$ Value \item constexpr auto \mbox{\hyperlink{classkblib_1_1range__t_a9b4773530795da0c585118301ccbe703}{greater}} () const noexcept(nothrow\+\_\+copyable) -\/$>$ Value \item {\footnotesize template$<$typename Container , \mbox{\hyperlink{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$ = nullptr$>$ }\\\mbox{\hyperlink{classkblib_1_1range__t_a339ff51d207ffdcdf390f60b80b554bc}{operator Container}} () const noexcept(noexcept(Container(std\+::declval$<$ \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}} $>$(), std\+::declval$<$ \mbox{\hyperlink{structkblib_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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+setlike\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$ = nullptr$>$ }\\\mbox{\hyperlink{classkblib_1_1range__t_a339ff51d207ffdcdf390f60b80b554bc}{operator Container}} () const noexcept(noexcept(Container(std\+::declval$<$ \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}} $>$(), std\+::declval$<$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a40a7672ee50f6f1823e177d674df8a4c}{begin}} (const \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}} \&r) noexcept -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a725f198750193671043f4a1ce06547e1}{end}} (const \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}} \&r) noexcept -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a1bc83d205dc56fe68f676e7f23c09f60}{size}} (const \mbox{\hyperlink{classkblib_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{classkblib_1_1range__t_ab49e34be5a3c024d4c978c02b30a8e8c}{operator==}} (\mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}} l, \mbox{\hyperlink{classkblib_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{classkblib_1_1range__t_abbaa2e24023c9366928dd4b5473db026}{operator!=}} (\mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}} l, \mbox{\hyperlink{classkblib_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\+::range\+\_\+t$<$ Value, Delta $>$} A range generator, similar to Python 3\textquotesingle{}s \mbox{\hyperlink{namespacekblib_a72690688922a2d4ae9a3e46ff0c1a9a9}{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{classkblib_1_1range__t_ae3de19c205331d5a959f14b8eb912ec7}\label{classkblib_1_1range__t_ae3de19c205331d5a959f14b8eb912ec7}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!range\_t@{range\_t}} \index{range\_t@{range\_t}!kblib::range\_t$<$ Value, Delta $>$@{kblib::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{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_aa5a309c3eb79e6d76d685ecac0caece4}\label{classkblib_1_1range__t_aa5a309c3eb79e6d76d685ecac0caece4}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!range\_t@{range\_t}} \index{range\_t@{range\_t}!kblib::range\_t$<$ Value, Delta $>$@{kblib::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{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_ad99bfa41676f9181d7597fb21a8b1ed2}\label{classkblib_1_1range__t_ad99bfa41676f9181d7597fb21a8b1ed2}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!begin@{begin}} \index{begin@{begin}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{begin()}{begin()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::range\+\_\+t}}$<$ Value, Delta $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a97e080e5dba3337466df2f2cbed97cee}\label{classkblib_1_1range__t_a97e080e5dba3337466df2f2cbed97cee}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!empty@{empty}} \index{empty@{empty}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{empty()}{empty()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_a622a7bd9c78e511f70a3dd229871bad1}\label{classkblib_1_1range__t_a622a7bd9c78e511f70a3dd229871bad1}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!end@{end}} \index{end@{end}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{end()}{end()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::range\+\_\+t}}$<$ Value, Delta $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a9b4773530795da0c585118301ccbe703}\label{classkblib_1_1range__t_a9b4773530795da0c585118301ccbe703}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!greater@{greater}} \index{greater@{greater}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{greater()}{greater()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_a4e3345239799479144706b6e75ec32db}\label{classkblib_1_1range__t_a4e3345239799479144706b6e75ec32db}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!lesser@{lesser}} \index{lesser@{lesser}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{lesser()}{lesser()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_a339ff51d207ffdcdf390f60b80b554bc}\label{classkblib_1_1range__t_a339ff51d207ffdcdf390f60b80b554bc}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!operator Container@{operator Container}} \index{operator Container@{operator Container}!kblib::range\_t$<$ Value, Delta $>$@{kblib::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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+linear\+\_\+container\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$ = nullptr$>$ \\ \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_a339ff51d207ffdcdf390f60b80b554bc}\label{classkblib_1_1range__t_a339ff51d207ffdcdf390f60b80b554bc}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!operator Container@{operator Container}} \index{operator Container@{operator Container}!kblib::range\_t$<$ Value, Delta $>$@{kblib::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{namespacekblib_a366272ad8baad19be4ccf8128afb04a3}{enable\+\_\+if\+\_\+t}}$<$ is\+\_\+setlike\+\_\+v$<$ Container $>$ and std\+::is\+\_\+constructible$<$ Container, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}}, \mbox{\hyperlink{structkblib_1_1range__t_1_1iterator}{iterator}} $>$\+::value $>$ $\ast$ = nullptr$>$ \\ \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_a277f45f3498f7cdac0e3f1852e89d89b}\label{classkblib_1_1range__t_a277f45f3498f7cdac0e3f1852e89d89b}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!operator\mbox{[}\mbox{]}@{operator[]}} \index{operator\mbox{[}\mbox{]}@{operator[]}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ template$<$typename Integral $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::range\+\_\+t}}$<$ Value, Delta $>$\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{Integral}]{x }\end{DoxyParamCaption}) const -\/$>$ decltype(\mbox{\hyperlink{classkblib_1_1range__t_ad99bfa41676f9181d7597fb21a8b1ed2}{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{classkblib_1_1range__t_aa16e18d4ea94674c40e7c33586b4a9de}\label{classkblib_1_1range__t_aa16e18d4ea94674c40e7c33586b4a9de}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!size@{size}} \index{size@{size}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{size()}{size()}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto \mbox{\hyperlink{classkblib_1_1range__t}{kblib\+::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{classkblib_1_1range__t_a40a7672ee50f6f1823e177d674df8a4c}\label{classkblib_1_1range__t_a40a7672ee50f6f1823e177d674df8a4c}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!begin@{begin}} \index{begin@{begin}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{begin}{begin}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto begin (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$ Value, Delta $>$ \&}]{r }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_a725f198750193671043f4a1ce06547e1}\label{classkblib_1_1range__t_a725f198750193671043f4a1ce06547e1}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!end@{end}} \index{end@{end}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{end}{end}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto end (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$ Value, Delta $>$ \&}]{r }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{structkblib_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{classkblib_1_1range__t_abbaa2e24023c9366928dd4b5473db026}\label{classkblib_1_1range__t_abbaa2e24023c9366928dd4b5473db026}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{operator"!=}{operator!=}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr friend auto operator!= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$ Value, Delta $>$}]{l, }\item[{\mbox{\hyperlink{classkblib_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{classkblib_1_1range__t_ab49e34be5a3c024d4c978c02b30a8e8c}\label{classkblib_1_1range__t_ab49e34be5a3c024d4c978c02b30a8e8c}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!operator==@{operator==}} \index{operator==@{operator==}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{operator==}{operator==}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr friend auto operator== (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classkblib_1_1range__t}{range\+\_\+t}}$<$ Value, Delta $>$}]{l, }\item[{\mbox{\hyperlink{classkblib_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{classkblib_1_1range__t_a1bc83d205dc56fe68f676e7f23c09f60}\label{classkblib_1_1range__t_a1bc83d205dc56fe68f676e7f23c09f60}} \index{kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}!size@{size}} \index{size@{size}!kblib::range\_t$<$ Value, Delta $>$@{kblib::range\_t$<$ Value, Delta $>$}} \doxysubsubsection{\texorpdfstring{size}{size}} {\footnotesize\ttfamily template$<$typename Value , typename Delta $>$ \\ constexpr auto size (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classkblib_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}