return range from sort and make it pipeable

master
Daniel Kolesa 2016-04-29 17:34:46 +01:00
parent 62fdbc74ad
commit 551dc8bc15
1 changed files with 10 additions and 3 deletions

View File

@ -128,13 +128,20 @@ namespace detail {
} /* namespace detail */ } /* namespace detail */
template<typename R, typename C> template<typename R, typename C>
inline void sort(R range, C compare) { inline R sort_cmp(R range, C compare) {
detail::introsort(range, compare); detail::introsort(range, compare);
return range;
}
template<typename C> inline auto sort(C compare) {
return [&compare](auto &obj) { return sort(obj, move(compare)); };
} }
template<typename R> template<typename R>
inline void sort(R range) { inline R sort(R range) {
sort(range, Less<RangeValue<R>>()); return sort_cmp(range, Less<RangeValue<R>>());
}
inline auto sort() {
return [](auto &obj) { return sort(obj); };
} }
/* min/max(_element) */ /* min/max(_element) */