|
template<typename I , typename S , typename C = ordered_less, typename P = ident, requires = (Sortable<I, C, P>() && RandomAccessIterator<I>() && Sentinel<S, I>())> |
I | operator() (I begin, S end_, C pred=C{}, P proj=P{}) const |
|
template<typename Rng , typename C = ordered_less, typename P = ident, typename I = iterator_t<Rng>, requires = (Sortable<I, C, P>() && RandomAccessRange<Rng>())> |
safe_iterator_t< Rng > | operator() (Rng &&rng, C pred=C{}, P proj=P{}) const |
|
|
template<typename I , typename D , typename C , typename P > |
static void | chunk_insertion_sort (I begin, I end, D chunk_size, C &pred, P &proj) |
|
template<typename I , typename C , typename P > |
static void | inplace_stable_sort (I begin, I end, C &pred, P &proj) |
|
static constexpr int | merge_sort_chunk_size () |
|
template<typename I1 , typename I2 , typename D , typename C , typename P > |
static void | merge_sort_loop (I1 begin, I1 end, I2 result, D step_size, C &pred, P &proj) |
|
template<typename I , typename V , typename C , typename P > |
static void | merge_sort_with_buffer (I begin, I end, V *buffer, C &pred, P &proj) |
|
template<typename I , typename V , typename D , typename C , typename P > |
static void | stable_sort_adaptive (I begin, I end, V *buffer, D buffer_size, C &pred, P &proj) |
|