Releases: Morwenn/cpp-sort
Releases · Morwenn/cpp-sort
1.1.1 — Japan
I will be away in Japan for a few weeks, which means that it is probably a good time for a bugfix release. No new exciting feature in this release, but several small improvements here and there.
Bug fixes
- Work around a Clang bug to fix the implicit deduction guide of
counting_adapter
in C++17 - Add missing constructor to
stable_adapter<self_sort_adapter>
to make implicit deduction guides work in C++17 - Fix warning about
class
/struct
difference between declaration and definition ofhybrid_adapter
Tiny improvements
- Make the constructors of sorter adapters taking one or more sorters
explicit
probe::rem
now performs a single pass over the sequence even when passed non-random-access iterators, which might make it slightly more performant in this case- Code using
std::result_of
now usesstd::invoke_result
when available, making it more robust against type system subtleties - More
noexcept
here and there - Tiny attempts to improve the build times and produced binary size here and there, but it unfortunately shouldn't make any noticeable difference
1.1.0 — New job
This release doesn't bring many new things into cpp-sort, but has a few worthwhile bug & consistency fixes. I got a new job, hence the release name, and wanted to push everything that was ready because I might not be as active on the project for some time.
There were a few global efforts to reduce unneeded template instantiations, reduce the produced binary size and improve compile times a bit, but these changes are anecdotal at best, and probably don't make a noticeable difference.
New features
- New measure of presortedness:
probe::mono
, after the equivalent Mono described in Sort Race by Zhang, Meng and Liang
Bug fixes
- Fix compiler error in
hybrid_adapter
when too many sorters of the same category are passed - Make sure all adapted sorters can also be converted to function pointers
- Fix
probe::runs
: it only took increasing sequences into account and didn't behave properly with non-increasing ones (where several elements in an increasing sequence compare equivalent) - Properly perfect-forward iterable parameters in
hybrid_adapter
- Actually provide
container_aware_adapter
when including<cpp-sort/adapters.h>
- Apply
utility::as_function
to the comparison and projection functions passed toself_sort_adapter
, fixing a few errors when it is used with pointers to class members
Tiny improvements
- Don't copy instances of locale in
case_insensitive_less
- Actually create a minimal number of poplars in
poplar_sorter
, even in corner cases - Tiny optimization in
indirect_adapter
- Don't wrap adapters in
sorter_facade
when they don't need to, slightly reducing the template "stack traces" when there are errors - Small changes here and there to reduce the binary size a bit
Tooling
- Set up code coverage via codecov.io (#120)
- Globally document exception guarantees for the library (#105)
- Enable ccache for clang++ with the Linux CI
- Simpler and more consistent .travis.yml where possible