summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-07-08 16:58:11 +0200
committerMarc Mutz <marc.mutz@qt.io>2022-07-12 21:07:22 +0200
commitbcd20a74c9f2cd5920ecc5c1c0bb6d577db6cb50 (patch)
tree23493ff7787aea059233a91531f2c2334f542f35
parent42f96fe2074bc63cfb8a4ae71a7262d554661da2 (diff)
FilterKey: fix ambiguous relational operators in C++20
The member operators weren't const, leading them to be ambiguous with their reversed versions. Fix by adding a private equals() function (to avoid churning the implementation) and making the relational operators hidden friends. Pick-to: 6.4 6.3 6.2 5.15 Task-number: QTBUG-104172 Change-Id: I97e74ef26fc2712d6f97c8f7d7bd61d6a625b42e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/render/materialsystem/filterkey.cpp7
-rw-r--r--src/render/materialsystem/filterkey_p.h9
2 files changed, 8 insertions, 8 deletions
diff --git a/src/render/materialsystem/filterkey.cpp b/src/render/materialsystem/filterkey.cpp
index 2a3a4d9d0..7429735ef 100644
--- a/src/render/materialsystem/filterkey.cpp
+++ b/src/render/materialsystem/filterkey.cpp
@@ -47,7 +47,7 @@ void FilterKey::syncFromFrontEnd(const QNode *frontEnd, bool firstTime)
}
}
-bool FilterKey::operator ==(const FilterKey &other)
+bool FilterKey::equals(const FilterKey &other) const
{
if (&other == this)
return true;
@@ -65,11 +65,6 @@ bool FilterKey::operator ==(const FilterKey &other)
other.value() == value());
}
-bool FilterKey::operator !=(const FilterKey &other)
-{
- return !operator ==(other);
-}
-
} // namespace Render
} // namespace Qt3DRender
diff --git a/src/render/materialsystem/filterkey_p.h b/src/render/materialsystem/filterkey_p.h
index bb27c8ced..e8bbf1b9d 100644
--- a/src/render/materialsystem/filterkey_p.h
+++ b/src/render/materialsystem/filterkey_p.h
@@ -36,10 +36,15 @@ public:
const QVariant &value() const { return m_value; }
const QString &name() const { return m_name; }
void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override;
- bool operator ==(const FilterKey &other);
- bool operator !=(const FilterKey &other);
+
+ friend bool operator==(const FilterKey &lhs, const FilterKey &rhs)
+ { return lhs.equals(rhs); }
+ friend bool operator !=(const FilterKey &lhs, const FilterKey &rhs)
+ { return !lhs.equals(rhs); }
private:
+ bool equals(const FilterKey &other) const;
+
QVariant m_value;
QString m_name;
};