From 3917838d64a39186f5b4eedbd55347e445ca2aec Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 8 Jan 2022 14:44:45 +0100 Subject: QFlatMap: optimize construction from existing containers Use {copy,move} ctors instead of default-ctor, followed by (move|copy)-assignment. Pick-to: 6.3 6.2 Change-Id: Id2fd53050cd353a9374fd065ac25d753d42d1be9 Reviewed-by: Joerg Bornemann --- src/corelib/tools/qflatmap_p.h | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'src/corelib/tools/qflatmap_p.h') diff --git a/src/corelib/tools/qflatmap_p.h b/src/corelib/tools/qflatmap_p.h index 936b1749df..621eb7adba 100644 --- a/src/corelib/tools/qflatmap_p.h +++ b/src/corelib/tools/qflatmap_p.h @@ -439,23 +439,20 @@ public: } explicit QFlatMap(key_container_type &&keys, const mapped_container_type &values) + : c{std::move(keys), values} { - c.keys = std::move(keys); - c.values = values; ensureOrderedUnique(); } explicit QFlatMap(const key_container_type &keys, mapped_container_type &&values) + : c{keys, std::move(values)} { - c.keys = keys; - c.values = std::move(values); ensureOrderedUnique(); } explicit QFlatMap(key_container_type &&keys, mapped_container_type &&values) + : c{std::move(keys), std::move(values)} { - c.keys = std::move(keys); - c.values = std::move(values); ensureOrderedUnique(); } @@ -473,30 +470,26 @@ public: explicit QFlatMap(Qt::OrderedUniqueRange_t, const key_container_type &keys, const mapped_container_type &values) + : c{keys, values} { - c.keys = keys; - c.values = values; } explicit QFlatMap(Qt::OrderedUniqueRange_t, key_container_type &&keys, const mapped_container_type &values) + : c{std::move(keys), values} { - c.keys = std::move(keys); - c.values = values; } explicit QFlatMap(Qt::OrderedUniqueRange_t, const key_container_type &keys, mapped_container_type &&values) + : c{keys, std::move(values)} { - c.keys = keys; - c.values = std::move(values); } explicit QFlatMap(Qt::OrderedUniqueRange_t, key_container_type &&keys, mapped_container_type &&values) + : c{std::move(keys), std::move(values)} { - c.keys = std::move(keys); - c.values = std::move(values); } explicit QFlatMap(Qt::OrderedUniqueRange_t, std::initializer_list lst) -- cgit v1.2.3