From 9d3ea6fed75fa2e74abd7f0cba8e645deeca7de6 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sun, 26 Oct 2025 00:27:07 +0300 Subject: [PATCH] BAN: Use new it_value_type_t in sorting functions --- BAN/include/BAN/Sort.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/BAN/include/BAN/Sort.h b/BAN/include/BAN/Sort.h index 299eca36..d50c6204 100644 --- a/BAN/include/BAN/Sort.h +++ b/BAN/include/BAN/Sort.h @@ -8,7 +8,7 @@ namespace BAN::sort { - template> + template>> void exchange_sort(It begin, It end, Comp comp = {}) { for (It lhs = begin; lhs != end; ++lhs) @@ -42,7 +42,7 @@ namespace BAN::sort } - template> + template>> void quick_sort(It begin, It end, Comp comp = {}) { if (distance(begin, end) <= 1) @@ -52,14 +52,14 @@ namespace BAN::sort quick_sort(++mid, end, comp); } - template> + template>> void insertion_sort(It begin, It end, Comp comp = {}) { if (distance(begin, end) <= 1) return; for (It it1 = next(begin, 1); it1 != end; ++it1) { - typename It::value_type x = move(*it1); + auto x = move(*it1); It it2 = it1; for (; it2 != begin && comp(x, *prev(it2, 1)); --it2) *it2 = move(*prev(it2, 1)); @@ -71,7 +71,7 @@ namespace BAN::sort { template - void push_heap(It begin, size_t hole_index, size_t top_index, typename It::value_type value, Comp comp) + void push_heap(It begin, size_t hole_index, size_t top_index, it_value_type_t value, Comp comp) { size_t parent = (hole_index - 1) / 2; while (hole_index > top_index && comp(*next(begin, parent), value)) @@ -84,7 +84,7 @@ namespace BAN::sort } template - void adjust_heap(It begin, size_t hole_index, size_t len, typename It::value_type value, Comp comp) + void adjust_heap(It begin, size_t hole_index, size_t len, it_value_type_t value, Comp comp) { const size_t top_index = hole_index; size_t child = hole_index; @@ -107,7 +107,7 @@ namespace BAN::sort } - template> + template> void make_heap(It begin, It end, Comp comp = {}) { const size_t len = distance(begin, end); @@ -126,7 +126,7 @@ namespace BAN::sort } } - template> + template>> void sort_heap(It begin, It end, Comp comp = {}) { const size_t len = distance(begin, end); @@ -143,7 +143,7 @@ namespace BAN::sort } } - template> + template>> void heap_sort(It begin, It end, Comp comp = {}) { make_heap(begin, end, comp); @@ -167,7 +167,7 @@ namespace BAN::sort } - template> + template>> void intro_sort(It begin, It end, Comp comp = {}) { const size_t len = distance(begin, end); @@ -190,10 +190,10 @@ namespace BAN::sort } template - requires is_unsigned_v && (radix > 0 && (radix & (radix - 1)) == 0) + requires is_unsigned_v> && (radix > 0 && (radix & (radix - 1)) == 0) BAN::ErrorOr radix_sort(It begin, It end) { - using value_type = typename It::value_type; + using value_type = it_value_type_t; const size_t len = distance(begin, end); if (len <= 1) @@ -231,7 +231,7 @@ namespace BAN::sort return {}; } - template> + template>> void sort(It begin, It end, Comp comp = {}) { return intro_sort(begin, end, comp);