On 22. Jan 2020, at 18:23, Malte Skarupke via Boost
wrote: Let me know what's required to get this into boost. Would you like this in the form of a pull request?
One of the big things that probably needs review is the interface, since radix sorting works differently than comparison based sorting. For most normal uses you just need to provide a sort key, but more complicated cases can get more complicated. I tried very hard to make everything easy, but I'd also be curious if others can come up with better ways of doing the interface.
I am not an expert on Boost.Sort and only had a quick look at your changes, but: If I understood correctly, your new algorithm increases the requirement for Boost.Sort to C++17 from C++11. I don't see a good reason for doing that. You can replace if constexpr and the generic lambdas in your implementation with other code constructs that work on C++11. Regarding the interface, shouldn't it follow the example of spreadsort? Regarding having an extra single-header version: that seems overkill to me. Boost.Sort already claims to have no dependencies on other Boost libraries and is header-only, which should make it extremely easy to include in any project. "These algorithms do not use any other library or utility. The parallel algorithms need a C++11 compliant compiler."