\hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator}{}\doxysection{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator\texorpdfstring{$<$}{<} base\+\_\+iterator, operation \texorpdfstring{$>$}{>} Class Template Reference} \label{class_k_b_l_i_b___n_s_1_1transform__iterator}\index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} An Input\+Iterator that applies a transformation to the elements of the range. {\ttfamily \#include $<$kblib/iterators.\+h$>$} \doxysubsection*{Public Types} \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a1789692b24ac0598a6b12c2a7d4b7c9d}{difference\+\_\+type}} = std\+::ptrdiff\+\_\+t \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aca881547259322c9e6f5d75277b30356}{result\+\_\+type}} = decltype(kblib\+::invoke(op, $\ast$it)) \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aadd36a23d00f8f8b06667f342bdc5b75}{const\+\_\+result\+\_\+type}} = decltype(kblib\+::invoke(std\+::as\+\_\+const(op), $\ast$std\+::as\+\_\+const(it))) \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a9127c500fae7b71664fdf1d9e96b36ca}{value\+\_\+type}} = \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aca881547259322c9e6f5d75277b30356}{result\+\_\+type}} \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a28b4677e3220f066c663f167716a72e8}{pointer}} = void \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_acb7cb99442b6dda54064c80cc12e6955}{reference}} = \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a9127c500fae7b71664fdf1d9e96b36ca}{value\+\_\+type}} \item using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aacf1175e0fd96b906a0b57762ebe643d}{iterator\+\_\+category}} = std\+::input\+\_\+iterator\+\_\+tag \end{DoxyCompactItemize} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a4d40438709b7eed7bec3924bbf9c75db}{transform\+\_\+iterator}} (base\+\_\+iterator \+\_\+it, operation \+\_\+op) noexcept(noexcept(base\+\_\+iterator\{ \+\_\+it\}) and noexcept(std\+::is\+\_\+nothrow\+\_\+move\+\_\+constructible$<$ operation $>$\+::value)) \begin{DoxyCompactList}\small\item\em Constructs a \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} which applies \+\_\+op to the values obtained from $\ast$\+\_\+it. \end{DoxyCompactList}\item \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a29de52243a993fc860e41cd9d4d6b40d}{transform\+\_\+iterator}} (base\+\_\+iterator end\+\_\+it) noexcept(noexcept(base\+\_\+iterator\{ end\+\_\+it\})) \begin{DoxyCompactList}\small\item\em constructs a non-\/dereferenceable sentinel iterator \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_ae45d5e8a32a1e723a30f842813a34b9d}{operator$\ast$}} () noexcept(noexcept(kblib\+::invoke(op, $\ast$it))) -\/$>$ decltype(auto) \begin{DoxyCompactList}\small\item\em Transforms the value obtained by dereferencing it. \end{DoxyCompactList}\item decltype(auto) \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aa930bf50682968a8592dea42d62f4131}{operator$\ast$}} () const noexcept(noexcept(kblib\+::invoke(op, $\ast$it))) \begin{DoxyCompactList}\small\item\em Transforms the value obtained by dereferencing it. \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_ab779aba22caa0f699af4d2752d54b25c}{operator-\/$>$}} () noexcept(noexcept(kblib\+::invoke(op, $\ast$it))) -\/$>$ auto \begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1containing__ptr}{containing\+\_\+ptr}} with the transformed value, because operator-\/\texorpdfstring{$>$}{>} expects a pointer-\/like return type. \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a994643e15aa42a0732416251c55fcd42}{operator-\/$>$}} () const noexcept(noexcept(kblib\+::invoke(op, $\ast$it))) -\/$>$ auto \begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1containing__ptr}{containing\+\_\+ptr}} with the transformed value, because operator-\/\texorpdfstring{$>$}{>} expects a pointer-\/like return type. \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a3a004734aa9be72d35c7fa57d7413742}{operator++}} () noexcept(noexcept(++it)) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \& \begin{DoxyCompactList}\small\item\em Increments the underlying iterator and returns $\ast$this. \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_ab9c57c5495f5ee6f9906b64e0b1878d6}{operator++}} (int) noexcept(noexcept(\mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}\{it++, op\})) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \begin{DoxyCompactList}\small\item\em Increments the underlying iterator and returns a copy of the current value. \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a3ea8f0189081b1b42bcba2a08d7aff31}{base}} () const noexcept -\/$>$ base\+\_\+iterator \item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aced67f8af010c3bc6e72e2711cf861a0}{from\+\_\+base}} (base\+\_\+iterator it\+\_\+) const noexcept(std\+::is\+\_\+nothrow\+\_\+copy\+\_\+constructible\+\_\+v$<$ operation $>$) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \end{DoxyCompactItemize} \doxysubsection*{Friends} \begin{DoxyCompactItemize} \item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_ab6112b052d003ddb11f94db0266a5079}{operator==}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&rhs) noexcept -\/$>$ bool \begin{DoxyCompactList}\small\item\em Compares the base iterators of lhs and rhs. \end{DoxyCompactList}\item auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_ac9b8655a7bb927ea6794904a53ef66ea}{operator!=}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&rhs) noexcept -\/$>$ bool \begin{DoxyCompactList}\small\item\em Compares the base iterators of lhs and rhs. \end{DoxyCompactList}\item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a5705317b59e361281ac258499ec38f0d}{operator==}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const OIt \&rhs) noexcept -\/$>$ bool \item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a4299bf3acacce3a8864129e2392e6d0d}{operator==}} (const OIt \&lhs, const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&rhs) noexcept -\/$>$ bool \item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_abb5773835b73e3dbf64bbfd0adf66f94}{operator!=}} (const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const OIt \&rhs) noexcept -\/$>$ bool \item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a6a1a61b3e24431fa1d786477af665035}{operator!=}} (const OIt \&lhs, const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \&rhs) noexcept -\/$>$ bool \end{DoxyCompactItemize} \doxysubsection{Detailed Description} \subsubsection*{template$<$typename base\+\_\+iterator, typename operation$>$\newline class KBLIB\+\_\+\+NS\+::transform\+\_\+iterator$<$ base\+\_\+iterator, operation $>$} An Input\+Iterator that applies a transformation to the elements of the range. \begin{DoxyAttention}{Attention} This class template depends on features introduced in C++17. \end{DoxyAttention} Definition at line \mbox{\hyperlink{iterators_8h_source_l01149}{1149}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \doxysubsection{Member Typedef Documentation} \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_aadd36a23d00f8f8b06667f342bdc5b75}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_aadd36a23d00f8f8b06667f342bdc5b75}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!const\_result\_type@{const\_result\_type}} \index{const\_result\_type@{const\_result\_type}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{const\_result\_type}{const\_result\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::const\+\_\+result\+\_\+type = decltype(kblib\+::invoke(std\+::as\+\_\+const(op), $\ast$std\+::as\+\_\+const(it)))} Definition at line \mbox{\hyperlink{iterators_8h_source_l01157}{1157}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a1789692b24ac0598a6b12c2a7d4b7c9d}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a1789692b24ac0598a6b12c2a7d4b7c9d}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!difference\_type@{difference\_type}} \index{difference\_type@{difference\_type}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{difference\_type}{difference\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::difference\+\_\+type = std\+::ptrdiff\+\_\+t} Definition at line \mbox{\hyperlink{iterators_8h_source_l01155}{1155}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_aacf1175e0fd96b906a0b57762ebe643d}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_aacf1175e0fd96b906a0b57762ebe643d}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!iterator\_category@{iterator\_category}} \index{iterator\_category@{iterator\_category}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{iterator\_category}{iterator\_category}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::iterator\+\_\+category = std\+::input\+\_\+iterator\+\_\+tag} Definition at line \mbox{\hyperlink{iterators_8h_source_l01162}{1162}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a28b4677e3220f066c663f167716a72e8}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a28b4677e3220f066c663f167716a72e8}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!pointer@{pointer}} \index{pointer@{pointer}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{pointer}{pointer}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::pointer = void} Definition at line \mbox{\hyperlink{iterators_8h_source_l01160}{1160}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_acb7cb99442b6dda54064c80cc12e6955}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_acb7cb99442b6dda54064c80cc12e6955}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!reference@{reference}} \index{reference@{reference}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{reference}{reference}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::reference = \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_a9127c500fae7b71664fdf1d9e96b36ca}{value\+\_\+type}}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01161}{1161}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_aca881547259322c9e6f5d75277b30356}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_aca881547259322c9e6f5d75277b30356}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!result\_type@{result\_type}} \index{result\_type@{result\_type}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{result\_type}{result\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::result\+\_\+type = decltype(kblib\+::invoke(op, $\ast$it))} Definition at line \mbox{\hyperlink{iterators_8h_source_l01156}{1156}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a9127c500fae7b71664fdf1d9e96b36ca}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a9127c500fae7b71664fdf1d9e96b36ca}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!value\_type@{value\_type}} \index{value\_type@{value\_type}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{value\_type}{value\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::value\+\_\+type = \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator_aca881547259322c9e6f5d75277b30356}{result\+\_\+type}}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01159}{1159}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \doxysubsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a4d40438709b7eed7bec3924bbf9c75db}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a4d40438709b7eed7bec3924bbf9c75db}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!transform\_iterator@{transform\_iterator}} \index{transform\_iterator@{transform\_iterator}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{transform\_iterator()}{transform\_iterator()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::transform\+\_\+iterator (\begin{DoxyParamCaption}\item[{base\+\_\+iterator}]{\+\_\+it, }\item[{operation}]{\+\_\+op }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Constructs a \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} which applies \+\_\+op to the values obtained from $\ast$\+\_\+it. \begin{DoxyParams}{Parameters} {\em \+\_\+it} & An Input\+Iterator to a range to be transformed. \\ \hline {\em \+\_\+op} & The operation to apply to each element. \\ \hline \end{DoxyParams} Definition at line \mbox{\hyperlink{iterators_8h_source_l01171}{1171}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a29de52243a993fc860e41cd9d4d6b40d}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a29de52243a993fc860e41cd9d4d6b40d}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!transform\_iterator@{transform\_iterator}} \index{transform\_iterator@{transform\_iterator}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{transform\_iterator()}{transform\_iterator()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::transform\+\_\+iterator (\begin{DoxyParamCaption}\item[{base\+\_\+iterator}]{end\+\_\+it }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} constructs a non-\/dereferenceable sentinel iterator \begin{DoxyParams}{Parameters} {\em end\+\_\+it} & An iterator that marks the end of the input range. \\ \hline \end{DoxyParams} Definition at line \mbox{\hyperlink{iterators_8h_source_l01182}{1182}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a3ea8f0189081b1b42bcba2a08d7aff31}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a3ea8f0189081b1b42bcba2a08d7aff31}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!base@{base}} \index{base@{base}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{base()}{base()}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::base (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ base\+\_\+iterator \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01238}{1238}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_aced67f8af010c3bc6e72e2711cf861a0}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_aced67f8af010c3bc6e72e2711cf861a0}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!from\_base@{from\_base}} \index{from\_base@{from\_base}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{from\_base()}{from\_base()}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::from\+\_\+base (\begin{DoxyParamCaption}\item[{base\+\_\+iterator}]{it\+\_\+ }\end{DoxyParamCaption}) const -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01240}{1240}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_aa930bf50682968a8592dea42d62f4131}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_aa930bf50682968a8592dea42d62f4131}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator$\ast$@{operator$\ast$}} \index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ decltype(auto) \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Transforms the value obtained by dereferencing it. \begin{DoxyReturn}{Returns} decltype(auto) The result of invoking op on $\ast$it. \end{DoxyReturn} Definition at line \mbox{\hyperlink{iterators_8h_source_l01201}{1201}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_ae45d5e8a32a1e723a30f842813a34b9d}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_ae45d5e8a32a1e723a30f842813a34b9d}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator$\ast$@{operator$\ast$}} \index{operator$\ast$@{operator$\ast$}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator$\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ decltype(auto) \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Transforms the value obtained by dereferencing it. \begin{DoxyReturn}{Returns} decltype(auto) The result of invoking op on $\ast$it. \end{DoxyReturn} Definition at line \mbox{\hyperlink{iterators_8h_source_l01192}{1192}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a3a004734aa9be72d35c7fa57d7413742}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a3a004734aa9be72d35c7fa57d7413742}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator++@{operator++}} \index{operator++@{operator++}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator++()}{operator++()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator++ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}\& \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Increments the underlying iterator and returns $\ast$this. Definition at line \mbox{\hyperlink{iterators_8h_source_l01223}{1223}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_ab9c57c5495f5ee6f9906b64e0b1878d6}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_ab9c57c5495f5ee6f9906b64e0b1878d6}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator++@{operator++}} \index{operator++@{operator++}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator++()}{operator++()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator++ (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}} \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Increments the underlying iterator and returns a copy of the current value. Definition at line \mbox{\hyperlink{iterators_8h_source_l01233}{1233}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a994643e15aa42a0732416251c55fcd42}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a994643e15aa42a0732416251c55fcd42}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator-\/$>$@{operator-\/$>$}} \index{operator-\/$>$@{operator-\/$>$}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ auto \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Returns a \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1containing__ptr}{containing\+\_\+ptr}} with the transformed value, because operator-\/\texorpdfstring{$>$}{>} expects a pointer-\/like return type. Definition at line \mbox{\hyperlink{iterators_8h_source_l01216}{1216}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_ab779aba22caa0f699af4d2752d54b25c}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_ab779aba22caa0f699af4d2752d54b25c}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator-\/$>$@{operator-\/$>$}} \index{operator-\/$>$@{operator-\/$>$}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{KBLIB\+\_\+\+NS\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Returns a \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1containing__ptr}{containing\+\_\+ptr}} with the transformed value, because operator-\/\texorpdfstring{$>$}{>} expects a pointer-\/like return type. Definition at line \mbox{\hyperlink{iterators_8h_source_l01209}{1209}} 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_1transform__iterator_a6a1a61b3e24431fa1d786477af665035}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a6a1a61b3e24431fa1d786477af665035}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator"!=}{operator!=}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ template$<$typename OIt $>$ \\ auto operator!= (\begin{DoxyParamCaption}\item[{const OIt \&}]{lhs, }\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{rhs }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01279}{1279}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_abb5773835b73e3dbf64bbfd0adf66f94}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_abb5773835b73e3dbf64bbfd0adf66f94}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator"!=}{operator!=}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ template$<$typename OIt $>$ \\ auto operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{lhs, }\item[{const OIt \&}]{rhs }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01274}{1274}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_ac9b8655a7bb927ea6794904a53ef66ea}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_ac9b8655a7bb927ea6794904a53ef66ea}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator"!=}{operator!=}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{lhs, }\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{rhs }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}} Compares the base iterators of lhs and rhs. Definition at line \mbox{\hyperlink{iterators_8h_source_l01257}{1257}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a4299bf3acacce3a8864129e2392e6d0d}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a4299bf3acacce3a8864129e2392e6d0d}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator==@{operator==}} \index{operator==@{operator==}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator==}{operator==}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ template$<$typename OIt $>$ \\ auto operator== (\begin{DoxyParamCaption}\item[{const OIt \&}]{lhs, }\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{rhs }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01268}{1268}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_a5705317b59e361281ac258499ec38f0d}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_a5705317b59e361281ac258499ec38f0d}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator==@{operator==}} \index{operator==@{operator==}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator==}{operator==}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ template$<$typename OIt $>$ \\ auto operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{lhs, }\item[{const OIt \&}]{rhs }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01263}{1263}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{class_k_b_l_i_b___n_s_1_1transform__iterator_ab6112b052d003ddb11f94db0266a5079}\label{class_k_b_l_i_b___n_s_1_1transform__iterator_ab6112b052d003ddb11f94db0266a5079}} \index{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}!operator==@{operator==}} \index{operator==@{operator==}!KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$@{KBLIB\_NS::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{operator==}{operator==}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{lhs, }\item[{const \mbox{\hyperlink{class_k_b_l_i_b___n_s_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{rhs }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [friend]}} Compares the base iterators of lhs and rhs. Definition at line \mbox{\hyperlink{iterators_8h_source_l01249}{1249}} 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}