diff options
Diffstat (limited to 'src/lib/corelib/tools/qttools.cpp')
-rw-r--r-- | src/lib/corelib/tools/qttools.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/corelib/tools/qttools.cpp b/src/lib/corelib/tools/qttools.cpp index ffd336d56..4a82bc5e0 100644 --- a/src/lib/corelib/tools/qttools.cpp +++ b/src/lib/corelib/tools/qttools.cpp @@ -41,6 +41,26 @@ #include <QtCore/qprocess.h> +namespace std { + +size_t hash<QVariant>::operator()(const QVariant &v) const noexcept +{ + switch (v.userType()) { + case QMetaType::UnknownType: return 0; + case QMetaType::Int: return std::hash<int>()(v.toInt()); + case QMetaType::UInt: return std::hash<int>()(v.toUInt()); + case QMetaType::QString: return std::hash<QString>()(v.toString()); + case QMetaType::QStringList: return std::hash<QStringList>()(v.toStringList()); + case QMetaType::QVariantList: return std::hash<QVariantList>()(v.toList()); + case QMetaType::QVariantMap: return std::hash<QVariantMap>()(v.toMap()); + case QMetaType::QVariantHash: return std::hash<QVariantHash>()(v.toHash()); + default: + QBS_ASSERT("Unsupported variant type" && false, return 0); + } +} + +} // namespace std + QT_BEGIN_NAMESPACE uint qHash(const QStringList &list) |