\hypertarget{classkblib_1_1transform__iterator}{}\doxysection{kblib\+::transform\+\_\+iterator\texorpdfstring{$<$}{<} base\+\_\+iterator, operation \texorpdfstring{$>$}{>} Class Template Reference} \label{classkblib_1_1transform__iterator}\index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator_a02228d419dd69c02f2eb12611195a8d7}{difference\+\_\+type}} = std\+::ptrdiff\+\_\+t \item using \mbox{\hyperlink{classkblib_1_1transform__iterator_a94aef5aac6c2f83307ba6d371e136ca4}{result\+\_\+type}} = decltype(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(op, $\ast$it)) \item using \mbox{\hyperlink{classkblib_1_1transform__iterator_a1886772f5691cb6a1449988eb4fe2440}{const\+\_\+result\+\_\+type}} = decltype(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(std\+::as\+\_\+const(op), $\ast$std\+::as\+\_\+const(it))) \item using \mbox{\hyperlink{classkblib_1_1transform__iterator_a5e428c32970f41f62b42d1d338493ffd}{value\+\_\+type}} = \mbox{\hyperlink{classkblib_1_1transform__iterator_a94aef5aac6c2f83307ba6d371e136ca4}{result\+\_\+type}} \item using \mbox{\hyperlink{classkblib_1_1transform__iterator_a2fe3030bcc46de77b00e11a13c234f1c}{pointer}} = void \item using \mbox{\hyperlink{classkblib_1_1transform__iterator_a8a5db0bd5c6f80af9ca7b927ccc9bfaf}{reference}} = \mbox{\hyperlink{classkblib_1_1transform__iterator_a5e428c32970f41f62b42d1d338493ffd}{value\+\_\+type}} \item using \mbox{\hyperlink{classkblib_1_1transform__iterator_a97579a49d25c108b6aa89fb5bc94feb9}{iterator\+\_\+category}} = std\+::input\+\_\+iterator\+\_\+tag \end{DoxyCompactItemize} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classkblib_1_1transform__iterator_a30ebb040770818ba0804743095752f8b}{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{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} which applies \+\_\+op to the values obtained from $\ast$\+\_\+it. \end{DoxyCompactList}\item \mbox{\hyperlink{classkblib_1_1transform__iterator_a45dbc8c657167842c46e8ff35f87e352}{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{classkblib_1_1transform__iterator_aa4b0789bf772c4526658710be3666afa}{operator$\ast$}} () noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{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{classkblib_1_1transform__iterator_aedbf67783a2c296666ba9ff5a462e790}{operator$\ast$}} () const noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(op, $\ast$it))) \begin{DoxyCompactList}\small\item\em Transforms the value obtained by dereferencing it. \end{DoxyCompactList}\item auto \mbox{\hyperlink{classkblib_1_1transform__iterator_a5fb6e004e063d548d6ace4344fc0be48}{operator-\/$>$}} () noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(op, $\ast$it))) -\/$>$ auto \begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{structkblib_1_1containing__ptr}{containing\+\_\+ptr}} with the transformed value, because operator-\/\texorpdfstring{$>$}{>} expects a pointer-\/like return type. \end{DoxyCompactList}\item auto \mbox{\hyperlink{classkblib_1_1transform__iterator_a2878d8b39d632bfa5e5c244f2f167b0e}{operator-\/$>$}} () const noexcept(noexcept(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(op, $\ast$it))) -\/$>$ auto \begin{DoxyCompactList}\small\item\em Returns a \mbox{\hyperlink{structkblib_1_1containing__ptr}{containing\+\_\+ptr}} with the transformed value, because operator-\/\texorpdfstring{$>$}{>} expects a pointer-\/like return type. \end{DoxyCompactList}\item auto \mbox{\hyperlink{classkblib_1_1transform__iterator_a5d17232ee68f4500d8c4a077be9009cc}{operator++}} () noexcept(noexcept(++it)) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \& \begin{DoxyCompactList}\small\item\em Increments the underlying iterator and returns $\ast$this. \end{DoxyCompactList}\item auto \mbox{\hyperlink{classkblib_1_1transform__iterator_a827e50f3c280ca12d86848a63b0e254f}{operator++}} (int) noexcept(noexcept(\mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}\{it++, op\})) -\/$>$ \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_ab879b0ced417c902a30234f5189c049d}{base}} () const noexcept -\/$>$ base\+\_\+iterator \item auto \mbox{\hyperlink{classkblib_1_1transform__iterator_aead1794163653f6c6829691ce24c95f7}{from\+\_\+base}} (base\+\_\+iterator it\+\_\+) const noexcept(std\+::is\+\_\+nothrow\+\_\+copy\+\_\+constructible\+\_\+v$<$ operation $>$) -\/$>$ \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \end{DoxyCompactItemize} \doxysubsection*{Friends} \begin{DoxyCompactItemize} \item auto \mbox{\hyperlink{classkblib_1_1transform__iterator_ab6112b052d003ddb11f94db0266a5079}{operator==}} (const \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_ac9b8655a7bb927ea6794904a53ef66ea}{operator!=}} (const \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_a5705317b59e361281ac258499ec38f0d}{operator==}} (const \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const OIt \&rhs) noexcept -\/$>$ bool \item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{classkblib_1_1transform__iterator_a4299bf3acacce3a8864129e2392e6d0d}{operator==}} (const OIt \&lhs, const \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \&rhs) noexcept -\/$>$ bool \item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{classkblib_1_1transform__iterator_abb5773835b73e3dbf64bbfd0adf66f94}{operator!=}} (const \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \&lhs, const OIt \&rhs) noexcept -\/$>$ bool \item {\footnotesize template$<$typename OIt $>$ }\\auto \mbox{\hyperlink{classkblib_1_1transform__iterator_a6a1a61b3e24431fa1d786477af665035}{operator!=}} (const OIt \&lhs, const \mbox{\hyperlink{classkblib_1_1transform__iterator}{transform\+\_\+iterator}} \&rhs) noexcept -\/$>$ bool \end{DoxyCompactItemize} \doxysubsection{Detailed Description} \subsubsection*{template$<$typename base\+\_\+iterator, typename operation$>$\newline class kblib\+::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{classkblib_1_1transform__iterator_a1886772f5691cb6a1449988eb4fe2440}\label{classkblib_1_1transform__iterator_a1886772f5691cb6a1449988eb4fe2440}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!const\_result\_type@{const\_result\_type}} \index{const\_result\_type@{const\_result\_type}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{const\_result\_type}{const\_result\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::const\+\_\+result\+\_\+type = decltype(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{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{classkblib_1_1transform__iterator_a02228d419dd69c02f2eb12611195a8d7}\label{classkblib_1_1transform__iterator_a02228d419dd69c02f2eb12611195a8d7}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!difference\_type@{difference\_type}} \index{difference\_type@{difference\_type}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{difference\_type}{difference\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_a97579a49d25c108b6aa89fb5bc94feb9}\label{classkblib_1_1transform__iterator_a97579a49d25c108b6aa89fb5bc94feb9}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!iterator\_category@{iterator\_category}} \index{iterator\_category@{iterator\_category}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{iterator\_category}{iterator\_category}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_a2fe3030bcc46de77b00e11a13c234f1c}\label{classkblib_1_1transform__iterator_a2fe3030bcc46de77b00e11a13c234f1c}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!pointer@{pointer}} \index{pointer@{pointer}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{pointer}{pointer}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_a8a5db0bd5c6f80af9ca7b927ccc9bfaf}\label{classkblib_1_1transform__iterator_a8a5db0bd5c6f80af9ca7b927ccc9bfaf}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!reference@{reference}} \index{reference@{reference}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{reference}{reference}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::reference = \mbox{\hyperlink{classkblib_1_1transform__iterator_a5e428c32970f41f62b42d1d338493ffd}{value\+\_\+type}}} Definition at line \mbox{\hyperlink{iterators_8h_source_l01161}{1161}} of file \mbox{\hyperlink{iterators_8h_source}{iterators.\+h}}. \mbox{\Hypertarget{classkblib_1_1transform__iterator_a94aef5aac6c2f83307ba6d371e136ca4}\label{classkblib_1_1transform__iterator_a94aef5aac6c2f83307ba6d371e136ca4}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!result\_type@{result\_type}} \index{result\_type@{result\_type}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{result\_type}{result\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::result\+\_\+type = decltype(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{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{classkblib_1_1transform__iterator_a5e428c32970f41f62b42d1d338493ffd}\label{classkblib_1_1transform__iterator_a5e428c32970f41f62b42d1d338493ffd}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!value\_type@{value\_type}} \index{value\_type@{value\_type}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{value\_type}{value\_type}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ using \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::value\+\_\+type = \mbox{\hyperlink{classkblib_1_1transform__iterator_a94aef5aac6c2f83307ba6d371e136ca4}{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{classkblib_1_1transform__iterator_a30ebb040770818ba0804743095752f8b}\label{classkblib_1_1transform__iterator_a30ebb040770818ba0804743095752f8b}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!transform\_iterator@{transform\_iterator}} \index{transform\_iterator@{transform\_iterator}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_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{classkblib_1_1transform__iterator_a45dbc8c657167842c46e8ff35f87e352}\label{classkblib_1_1transform__iterator_a45dbc8c657167842c46e8ff35f87e352}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!transform\_iterator@{transform\_iterator}} \index{transform\_iterator@{transform\_iterator}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_ab879b0ced417c902a30234f5189c049d}\label{classkblib_1_1transform__iterator_ab879b0ced417c902a30234f5189c049d}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!base@{base}} \index{base@{base}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{base()}{base()}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_aead1794163653f6c6829691ce24c95f7}\label{classkblib_1_1transform__iterator_aead1794163653f6c6829691ce24c95f7}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!from\_base@{from\_base}} \index{from\_base@{from\_base}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}} \doxysubsubsection{\texorpdfstring{from\_base()}{from\_base()}} {\footnotesize\ttfamily template$<$typename base\+\_\+iterator , typename operation $>$ \\ auto \mbox{\hyperlink{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::from\+\_\+base (\begin{DoxyParamCaption}\item[{base\+\_\+iterator}]{it\+\_\+ }\end{DoxyParamCaption}) const -\/$>$ \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_aedbf67783a2c296666ba9ff5a462e790}\label{classkblib_1_1transform__iterator_aedbf67783a2c296666ba9ff5a462e790}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator$\ast$@{operator$\ast$}} \index{operator$\ast$@{operator$\ast$}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_aa4b0789bf772c4526658710be3666afa}\label{classkblib_1_1transform__iterator_aa4b0789bf772c4526658710be3666afa}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator$\ast$@{operator$\ast$}} \index{operator$\ast$@{operator$\ast$}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::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{classkblib_1_1transform__iterator_a5d17232ee68f4500d8c4a077be9009cc}\label{classkblib_1_1transform__iterator_a5d17232ee68f4500d8c4a077be9009cc}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator++@{operator++}} \index{operator++@{operator++}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator++ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_a827e50f3c280ca12d86848a63b0e254f}\label{classkblib_1_1transform__iterator_a827e50f3c280ca12d86848a63b0e254f}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator++@{operator++}} \index{operator++@{operator++}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator++ (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_a2878d8b39d632bfa5e5c244f2f167b0e}\label{classkblib_1_1transform__iterator_a2878d8b39d632bfa5e5c244f2f167b0e}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator-\/$>$@{operator-\/$>$}} \index{operator-\/$>$@{operator-\/$>$}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const -\/$>$ auto \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Returns a \mbox{\hyperlink{structkblib_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{classkblib_1_1transform__iterator_a5fb6e004e063d548d6ace4344fc0be48}\label{classkblib_1_1transform__iterator_a5fb6e004e063d548d6ace4344fc0be48}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator-\/$>$@{operator-\/$>$}} \index{operator-\/$>$@{operator-\/$>$}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{kblib\+::transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ auto \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Returns a \mbox{\hyperlink{structkblib_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{classkblib_1_1transform__iterator_a6a1a61b3e24431fa1d786477af665035}\label{classkblib_1_1transform__iterator_a6a1a61b3e24431fa1d786477af665035}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_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{classkblib_1_1transform__iterator_abb5773835b73e3dbf64bbfd0adf66f94}\label{classkblib_1_1transform__iterator_abb5773835b73e3dbf64bbfd0adf66f94}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_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{classkblib_1_1transform__iterator_ac9b8655a7bb927ea6794904a53ef66ea}\label{classkblib_1_1transform__iterator_ac9b8655a7bb927ea6794904a53ef66ea}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator"!=@{operator"!=}} \index{operator"!=@{operator"!=}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{lhs, }\item[{const \mbox{\hyperlink{classkblib_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{classkblib_1_1transform__iterator_a4299bf3acacce3a8864129e2392e6d0d}\label{classkblib_1_1transform__iterator_a4299bf3acacce3a8864129e2392e6d0d}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator==@{operator==}} \index{operator==@{operator==}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_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{classkblib_1_1transform__iterator_a5705317b59e361281ac258499ec38f0d}\label{classkblib_1_1transform__iterator_a5705317b59e361281ac258499ec38f0d}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator==@{operator==}} \index{operator==@{operator==}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_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{classkblib_1_1transform__iterator_ab6112b052d003ddb11f94db0266a5079}\label{classkblib_1_1transform__iterator_ab6112b052d003ddb11f94db0266a5079}} \index{kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::transform\_iterator$<$ base\_iterator, operation $>$}!operator==@{operator==}} \index{operator==@{operator==}!kblib::transform\_iterator$<$ base\_iterator, operation $>$@{kblib::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{classkblib_1_1transform__iterator}{transform\+\_\+iterator}}$<$ base\+\_\+iterator, operation $>$ \&}]{lhs, }\item[{const \mbox{\hyperlink{classkblib_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}