diff --git a/ostd/algorithm.hh b/ostd/algorithm.hh index 2e53c8f..d726d3e 100644 --- a/ostd/algorithm.hh +++ b/ostd/algorithm.hh @@ -128,13 +128,20 @@ namespace detail { } /* namespace detail */ template -inline void sort(R range, C compare) { +inline R sort_cmp(R range, C compare) { detail::introsort(range, compare); + return range; +} +template inline auto sort(C compare) { + return [&compare](auto &obj) { return sort(obj, move(compare)); }; } template -inline void sort(R range) { - sort(range, Less>()); +inline R sort(R range) { + return sort_cmp(range, Less>()); +} +inline auto sort() { + return [](auto &obj) { return sort(obj); }; } /* min/max(_element) */