diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2021-07-12 11:15:44 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2021-07-14 08:57:39 +0200 |
commit | a7564e2657dcbd2f69c357d7c49c9326a23ee021 (patch) | |
tree | 1be6fa8b0a06bf1936059b7e22eed42059d41eb0 /src/corelib/tools | |
parent | fcfc854def12500658d5d863797169279b698498 (diff) |
QDuplicateTracker: accept the number of elements to reserve as a ctor argument
This prevents us from first reserve()ing Prealloc elements, and then
possibly reserve()ing a larger number, which leaves the first bucket
list's memory unused.
Consequently, deprecate reserve().
Change-Id: Ifc0a5a021097f4589557e7b5e45d9d0892797ade
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qduplicatetracker_p.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/tools/qduplicatetracker_p.h b/src/corelib/tools/qduplicatetracker_p.h index 7bc416140a..565d592ac2 100644 --- a/src/corelib/tools/qduplicatetracker_p.h +++ b/src/corelib/tools/qduplicatetracker_p.h @@ -106,6 +106,14 @@ class QDuplicateTracker { Q_DISABLE_COPY_MOVE(QDuplicateTracker); public: QDuplicateTracker() = default; + explicit QDuplicateTracker(qsizetype n) +#ifdef __cpp_lib_memory_resource + : set{size_t(n), &res} +#else + : set{n} +#endif + {} + Q_DECL_DEPRECATED_X("Pass the capacity to reserve() to the ctor instead.") void reserve(qsizetype n) { set.reserve(n); } [[nodiscard]] bool hasSeen(const T &s) { |