diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2023-05-17 01:17:54 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2023-05-24 11:44:11 +0000 |
commit | 01f242b0ad52e8944a3844a3d09175b55e1535a2 (patch) | |
tree | 735aee8e9372e7942d839dbfd12a70b14871f93d | |
parent | db8139b5d17b719c16bfba511d999c92c8a1158c (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.h | 7 |
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; } |