\hypertarget{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl}{}\doxysection{KBLIB\+\_\+\+NS\+::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl}\index{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a3df5dca11fb9c97ebd7a98280fdd85a5}{inplace}} (Random\+Access\+It begin, const Random\+Access\+It end, Unary\+Operation \&\&\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a776689bdcc9e3aa8017448393fe85f3a}{transform}}, Binary\+Predicate \&\&compare) -\/$>$ void \item static constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a8b38a4bfa6536447ba9c41a595ff9371}{scratch}} (Random\+Access\+It begin, const Random\+Access\+It end, Unary\+Operation \&\&\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a776689bdcc9e3aa8017448393fe85f3a}{transform}}, Binary\+Predicate \&\&compare) -\/$>$ void \item {\footnotesize template$<$typename Random\+Access\+It2 $>$ }\\static constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a307134a717f44919c50a186a2dc2543a}{copy}} (Random\+Access\+It begin, const Random\+Access\+It end, Random\+Access\+It2 d\+\_\+begin, Random\+Access\+It2 d\+\_\+end, Unary\+Operation \&\&\mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a776689bdcc9e3aa8017448393fe85f3a}{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\+\_\+\+NS\+::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a307134a717f44919c50a186a2dc2543a}\label{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a307134a717f44919c50a186a2dc2543a}} \index{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}!copy@{copy}} \index{copy@{copy}!KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl}{KBLIB\+\_\+\+NS\+::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a3df5dca11fb9c97ebd7a98280fdd85a5}\label{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a3df5dca11fb9c97ebd7a98280fdd85a5}} \index{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}!inplace@{inplace}} \index{inplace@{inplace}!KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl}{KBLIB\+\_\+\+NS\+::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a8b38a4bfa6536447ba9c41a595ff9371}\label{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl_a8b38a4bfa6536447ba9c41a595ff9371}} \index{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$}!scratch@{scratch}} \index{scratch@{scratch}!KBLIB\_NS::detail\_sort::sort\_transform\_impl$<$ RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small\_size, bool, bool, bool, bool $>$@{KBLIB\_NS::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{struct_k_b_l_i_b___n_s_1_1detail__sort_1_1sort__transform__impl}{KBLIB\+\_\+\+NS\+::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}