From 916db8e78161c4f840ea5f5f3dea7092f7aa8e81 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 23 Oct 2020 13:58:01 +0200 Subject: [PATCH] Utils: Use std::stable_sort() in Utils::sort() Potentially makes for a more consistent user experience, and does fix some CppTools test failures on macOS. Change-Id: I5bfd7a2460248450ad92259956598532fb7fb8ee Reviewed-by: Eike Ziller --- src/libs/utils/algorithm.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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); });