aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2023-05-17 01:17:54 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2023-05-24 11:44:11 +0000
commit01f242b0ad52e8944a3844a3d09175b55e1535a2 (patch)
tree735aee8e9372e7942d839dbfd12a70b14871f93d
parentdb8139b5d17b719c16bfba511d999c92c8a1158c (diff)
stlutils: sorted() takes input by universal reference
This eliminates the copy when a temporary object is passed to the function like we do in many places. Change-Id: I4d273469778f59cc2d88173f0a3dbe31cedfa479 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/lib/corelib/tools/stlutils.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/corelib/tools/stlutils.h b/src/lib/corelib/tools/stlutils.h
index 70e3f2b6d..a8ac90d54 100644
--- a/src/lib/corelib/tools/stlutils.h
+++ b/src/lib/corelib/tools/stlutils.h
@@ -46,10 +46,11 @@
namespace qbs {
namespace Internal {
-template <class C>
-C sorted(const C &container)
+template <typename C>
+auto sorted(C &&container)
{
- C result = container;
+ using R = std::remove_cv_t<std::remove_reference_t<C>>;
+ R result(std::forward<C>(container));
std::sort(std::begin(result), std::end(result));
return result;
}