Right now, boost/sort/spreadsort/detail/constants.hpp defines a bunch of performance-tuning constants for spreadsort. Why make these constants global? Because these constants live in a simple enum, they're impossible to change without changing the Boost headers, which is awkward when compiling against a Boost installed system-wide.
Instead, spreadsort should accept a struct containing these constants as a template argument. This way, users would be able to customize these parameters for specific invocations of spreadsort without changing the Boost headers themselves.
Right now,
boost/sort/spreadsort/detail/constants.hppdefines a bunch of performance-tuning constants for spreadsort. Why make these constants global? Because these constants live in a simple enum, they're impossible to change without changing the Boost headers, which is awkward when compiling against a Boost installed system-wide.Instead, spreadsort should accept a struct containing these constants as a template argument. This way, users would be able to customize these parameters for specific invocations of spreadsort without changing the Boost headers themselves.