kblib 0.2.3
General utilities library for modern C++
kblib::detail_sort::sort_transform_impl< RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small_size, bool, bool, bool, bool > Struct Template Reference

Sort data after applying an arbitrary transformation to it. The primary template handles the general case of arbitrary transformation and arbitrary compare predicate. More...

#include <kblib/sort.h>

Static Public Member Functions

static constexpr auto inplace (RandomAccessIt begin, const RandomAccessIt end, UnaryOperation &&transform, BinaryPredicate &&compare) -> void
 
static constexpr auto scratch (RandomAccessIt begin, const RandomAccessIt end, UnaryOperation &&transform, BinaryPredicate &&compare) -> void
 
template<typename RandomAccessIt2 >
static constexpr auto copy (RandomAccessIt begin, const RandomAccessIt end, RandomAccessIt2 d_begin, RandomAccessIt2 d_end, UnaryOperation &&transform, BinaryPredicate &&compare) -> void
 

Detailed Description

template<typename RandomAccessIt, typename UnaryOperation, typename BinaryPredicate, typename SortKey, std::size_t small_size = 8, bool = is_trivial_transformation<UnaryOperation>::value, bool = std::is_fundamental<SortKey>::value, bool = is_radix_sortable_v<SortKey>, bool = std::is_integral<SortKey>::value>
struct 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.

Definition at line 471 of file sort.h.

Member Function Documentation

◆ copy()

template<typename RandomAccessIt , typename UnaryOperation , typename BinaryPredicate , typename SortKey , std::size_t small_size = 8, bool = is_trivial_transformation<UnaryOperation>::value, bool = std::is_fundamental<SortKey>::value, bool = is_radix_sortable_v<SortKey>, bool = std::is_integral<SortKey>::value>
template<typename RandomAccessIt2 >
static constexpr auto kblib::detail_sort::sort_transform_impl< RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small_size, bool, bool, bool, bool >::copy ( RandomAccessIt  begin,
const RandomAccessIt  end,
RandomAccessIt2  d_begin,
RandomAccessIt2  d_end,
UnaryOperation &&  transform,
BinaryPredicate &&  compare 
) -> void
inlinestaticconstexpr

TODO(killerbee13): write efficent sort_transform_copy

Definition at line 507 of file sort.h.

◆ inplace()

template<typename RandomAccessIt , typename UnaryOperation , typename BinaryPredicate , typename SortKey , std::size_t small_size = 8, bool = is_trivial_transformation<UnaryOperation>::value, bool = std::is_fundamental<SortKey>::value, bool = is_radix_sortable_v<SortKey>, bool = std::is_integral<SortKey>::value>
static constexpr auto kblib::detail_sort::sort_transform_impl< RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small_size, bool, bool, bool, bool >::inplace ( RandomAccessIt  begin,
const RandomAccessIt  end,
UnaryOperation &&  transform,
BinaryPredicate &&  compare 
) -> void
inlinestaticconstexpr

TODO(killerbee13): write efficient inplace sort_transform

Definition at line 472 of file sort.h.

◆ scratch()

template<typename RandomAccessIt , typename UnaryOperation , typename BinaryPredicate , typename SortKey , std::size_t small_size = 8, bool = is_trivial_transformation<UnaryOperation>::value, bool = std::is_fundamental<SortKey>::value, bool = is_radix_sortable_v<SortKey>, bool = std::is_integral<SortKey>::value>
static constexpr auto kblib::detail_sort::sort_transform_impl< RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small_size, bool, bool, bool, bool >::scratch ( RandomAccessIt  begin,
const RandomAccessIt  end,
UnaryOperation &&  transform,
BinaryPredicate &&  compare 
) -> void
inlinestaticconstexpr

TODO(killerbee13): write efficient sort_transform

Definition at line 489 of file sort.h.


The documentation for this struct was generated from the following file: