\hypertarget{structkblib_1_1detail__sort_1_1sort__transform__impl}{}\doxysection{kblib\+::detail\+\_\+sort\+::sort\+\_\+transform\+\_\+impl\texorpdfstring{$<$}{<} Random\+Access\+It, Unary\+Operation, Binary\+Predicate, Sort\+Key, small\+\_\+size, bool, bool, bool, bool \texorpdfstring{$>$}{>} Struct Template Reference} \label{structkblib_1_1detail__sort_1_1sort__transform__impl}\index{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}} Sort data after applying an arbitrary transformation to it. The primary template handles the general case of arbitrary transformation and arbitrary compare predicate. {\ttfamily \#include $<$kblib/sort.\+h$>$} \doxysubsection*{Static Public Member Functions} \begin{DoxyCompactItemize} \item static constexpr auto \mbox{\hyperlink{structkblib_1_1detail__sort_1_1sort__transform__impl_a3d5db74e9bdec96c0550d7960a4f1529}{inplace}} (Random\+Access\+It begin, const Random\+Access\+It end, Unary\+Operation \&\&\mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{transform}}, Binary\+Predicate \&\&compare) -\/$>$ void \item static constexpr auto \mbox{\hyperlink{structkblib_1_1detail__sort_1_1sort__transform__impl_a0a9c12e67f48dbf232c169b39250181d}{scratch}} (Random\+Access\+It begin, const Random\+Access\+It end, Unary\+Operation \&\&\mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{transform}}, Binary\+Predicate \&\&compare) -\/$>$ void \item {\footnotesize template$<$typename Random\+Access\+It2 $>$ }\\static constexpr auto \mbox{\hyperlink{structkblib_1_1detail__sort_1_1sort__transform__impl_a451fa8cd05250bb8a288d7d5cfe89d61}{copy}} (Random\+Access\+It begin, const Random\+Access\+It end, Random\+Access\+It2 d\+\_\+begin, Random\+Access\+It2 d\+\_\+end, Unary\+Operation \&\&\mbox{\hyperlink{namespacekblib_aff53cc55f02129e6192d7a87c7cdf7f0}{transform}}, Binary\+Predicate \&\&compare) -\/$>$ void \end{DoxyCompactItemize} \doxysubsection{Detailed Description} \subsubsection*{template$<$typename Random\+Access\+It, typename Unary\+Operation, typename Binary\+Predicate, typename Sort\+Key, std\+::size\+\_\+t small\+\_\+size = 8, bool = is\+\_\+trivial\+\_\+transformation$<$\+Unary\+Operation$>$\+::value, bool = std\+::is\+\_\+fundamental$<$\+Sort\+Key$>$\+::value, bool = is\+\_\+radix\+\_\+sortable\+\_\+v$<$\+Sort\+Key$>$, bool = std\+::is\+\_\+integral$<$\+Sort\+Key$>$\+::value$>$\newline struct kblib\+::detail\+\_\+sort\+::sort\+\_\+transform\+\_\+impl$<$ Random\+Access\+It, Unary\+Operation, Binary\+Predicate, Sort\+Key, small\+\_\+size, bool, bool, bool, bool $>$} Sort data after applying an arbitrary transformation to it. The primary template handles the general case of arbitrary transformation and arbitrary compare predicate. Definition at line \mbox{\hyperlink{sort_8h_source_l00471}{471}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}. \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{structkblib_1_1detail__sort_1_1sort__transform__impl_a451fa8cd05250bb8a288d7d5cfe89d61}\label{structkblib_1_1detail__sort_1_1sort__transform__impl_a451fa8cd05250bb8a288d7d5cfe89d61}} \index{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}!copy@{copy}} \index{copy@{copy}!kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}} \doxysubsubsection{\texorpdfstring{copy()}{copy()}} {\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Unary\+Operation , typename Binary\+Predicate , typename Sort\+Key , std\+::size\+\_\+t small\+\_\+size = 8, bool = is\+\_\+trivial\+\_\+transformation$<$\+Unary\+Operation$>$\+::value, bool = std\+::is\+\_\+fundamental$<$\+Sort\+Key$>$\+::value, bool = is\+\_\+radix\+\_\+sortable\+\_\+v$<$\+Sort\+Key$>$, bool = std\+::is\+\_\+integral$<$\+Sort\+Key$>$\+::value$>$ \\ template$<$typename Random\+Access\+It2 $>$ \\ static constexpr auto \mbox{\hyperlink{structkblib_1_1detail__sort_1_1sort__transform__impl}{kblib\+::detail\+\_\+sort\+::sort\+\_\+transform\+\_\+impl}}$<$ Random\+Access\+It, Unary\+Operation, Binary\+Predicate, Sort\+Key, small\+\_\+size, bool, bool, bool, bool $>$\+::copy (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin, }\item[{const Random\+Access\+It}]{end, }\item[{Random\+Access\+It2}]{d\+\_\+begin, }\item[{Random\+Access\+It2}]{d\+\_\+end, }\item[{Unary\+Operation \&\&}]{transform, }\item[{Binary\+Predicate \&\&}]{compare }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [constexpr]}} TODO(killerbee13)\+: write efficent sort\+\_\+transform\+\_\+copy Definition at line \mbox{\hyperlink{sort_8h_source_l00507}{507}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}. \mbox{\Hypertarget{structkblib_1_1detail__sort_1_1sort__transform__impl_a3d5db74e9bdec96c0550d7960a4f1529}\label{structkblib_1_1detail__sort_1_1sort__transform__impl_a3d5db74e9bdec96c0550d7960a4f1529}} \index{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}!inplace@{inplace}} \index{inplace@{inplace}!kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}} \doxysubsubsection{\texorpdfstring{inplace()}{inplace()}} {\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Unary\+Operation , typename Binary\+Predicate , typename Sort\+Key , std\+::size\+\_\+t small\+\_\+size = 8, bool = is\+\_\+trivial\+\_\+transformation$<$\+Unary\+Operation$>$\+::value, bool = std\+::is\+\_\+fundamental$<$\+Sort\+Key$>$\+::value, bool = is\+\_\+radix\+\_\+sortable\+\_\+v$<$\+Sort\+Key$>$, bool = std\+::is\+\_\+integral$<$\+Sort\+Key$>$\+::value$>$ \\ static constexpr auto \mbox{\hyperlink{structkblib_1_1detail__sort_1_1sort__transform__impl}{kblib\+::detail\+\_\+sort\+::sort\+\_\+transform\+\_\+impl}}$<$ Random\+Access\+It, Unary\+Operation, Binary\+Predicate, Sort\+Key, small\+\_\+size, bool, bool, bool, bool $>$\+::inplace (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin, }\item[{const Random\+Access\+It}]{end, }\item[{Unary\+Operation \&\&}]{transform, }\item[{Binary\+Predicate \&\&}]{compare }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [constexpr]}} TODO(killerbee13)\+: write efficient inplace sort\+\_\+transform Definition at line \mbox{\hyperlink{sort_8h_source_l00472}{472}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}. \mbox{\Hypertarget{structkblib_1_1detail__sort_1_1sort__transform__impl_a0a9c12e67f48dbf232c169b39250181d}\label{structkblib_1_1detail__sort_1_1sort__transform__impl_a0a9c12e67f48dbf232c169b39250181d}} \index{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}!scratch@{scratch}} \index{scratch@{scratch}!kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{kblib::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}} \doxysubsubsection{\texorpdfstring{scratch()}{scratch()}} {\footnotesize\ttfamily template$<$typename Random\+Access\+It , typename Unary\+Operation , typename Binary\+Predicate , typename Sort\+Key , std\+::size\+\_\+t small\+\_\+size = 8, bool = is\+\_\+trivial\+\_\+transformation$<$\+Unary\+Operation$>$\+::value, bool = std\+::is\+\_\+fundamental$<$\+Sort\+Key$>$\+::value, bool = is\+\_\+radix\+\_\+sortable\+\_\+v$<$\+Sort\+Key$>$, bool = std\+::is\+\_\+integral$<$\+Sort\+Key$>$\+::value$>$ \\ static constexpr auto \mbox{\hyperlink{structkblib_1_1detail__sort_1_1sort__transform__impl}{kblib\+::detail\+\_\+sort\+::sort\+\_\+transform\+\_\+impl}}$<$ Random\+Access\+It, Unary\+Operation, Binary\+Predicate, Sort\+Key, small\+\_\+size, bool, bool, bool, bool $>$\+::scratch (\begin{DoxyParamCaption}\item[{Random\+Access\+It}]{begin, }\item[{const Random\+Access\+It}]{end, }\item[{Unary\+Operation \&\&}]{transform, }\item[{Binary\+Predicate \&\&}]{compare }\end{DoxyParamCaption}) -\/$>$ void \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [constexpr]}} TODO(killerbee13)\+: write efficient sort\+\_\+transform Definition at line \mbox{\hyperlink{sort_8h_source_l00489}{489}} of file \mbox{\hyperlink{sort_8h_source}{sort.\+h}}. The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} \item kblib/\mbox{\hyperlink{sort_8h}{sort.\+h}}\end{DoxyCompactItemize}