diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index e5b4396f24b..772c6b1c918 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -997,13 +997,13 @@ Container static_container_cast(const Container &container) template inline void sort(Container &container) { - std::sort(std::begin(container), std::end(container)); + std::stable_sort(std::begin(container), std::end(container)); } template inline void sort(Container &container, Predicate p) { - std::sort(std::begin(container), std::end(container), p); + std::stable_sort(std::begin(container), std::end(container), p); } // pointer to member @@ -1012,7 +1012,7 @@ inline void sort(Container &container, R S::*member) { auto f = std::mem_fn(member); using const_ref = typename Container::const_reference; - std::sort(std::begin(container), std::end(container), + std::stable_sort(std::begin(container), std::end(container), [&f](const_ref a, const_ref b) { return f(a) < f(b); }); @@ -1024,7 +1024,7 @@ inline void sort(Container &container, R (S::*function)() const) { auto f = std::mem_fn(function); using const_ref = typename Container::const_reference; - std::sort(std::begin(container), std::end(container), + std::stable_sort(std::begin(container), std::end(container), [&f](const_ref a, const_ref b) { return f(a) < f(b); });