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