diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-10-26 09:18:00 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-11-03 16:28:14 +0100 |
commit | a9c52dbdf47a6a070b84c8d34ae3c0c29a8ac1e8 (patch) | |
tree | 7ff3b7ea17d1d2a6b860bd6eab60525ff05e25f5 /tests/auto/corelib/tools/qhash | |
parent | ba1266baec820ab82b4dccb45f7c248052e8962e (diff) |
Fix qHash(QMultiHash)
The old code was trying to convert a multi hash to a QHash. While
that worked in Qt 5 it won't compile in Qt 6 anymore.
QHashCombineCommutative also can't be used with a std::pair.
ADL won't find the correct instance with a namespaced build,
as qHash(std::pair) is defined after QHashCommutative. Fix
the code to compile and work correctly.
Change-Id: Ice2bc3ab4244e310cbbb5e0f31fc11eb14f5faf3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/tools/qhash')
-rw-r--r-- | tests/auto/corelib/tools/qhash/tst_qhash.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qhash/tst_qhash.cpp b/tests/auto/corelib/tools/qhash/tst_qhash.cpp index d5a8db7553..d63ed7043e 100644 --- a/tests/auto/corelib/tools/qhash/tst_qhash.cpp +++ b/tests/auto/corelib/tools/qhash/tst_qhash.cpp @@ -73,6 +73,7 @@ private slots: void emplace(); void badHashFunction(); + void hashOfHash(); }; struct IdentityTracker { @@ -1754,5 +1755,14 @@ void tst_QHash::badHashFunction() } +void tst_QHash::hashOfHash() +{ + QHash<int, int> hash; + (void)qHash(hash); + + QMultiHash<int, int> multiHash; + (void)qHash(multiHash); +} + QTEST_APPLESS_MAIN(tst_QHash) #include "tst_qhash.moc" |