#pragma once #include "counting_sort.hpp" #include #include #include namespace detail { template auto nth_radix(std::size_t radix_number, Radix radix) { return [radix_number, radix = std::move(radix)](auto n) { using value_type = decltype(n); static_assert(std::is_integral_v && std::is_unsigned_v, ""); using traits = counting_sort_traits; return radix(static_cast(n >> (traits::radix_size * radix_number))); }; } } // namespace detail