diff options
author | Marc Mutz <marc.mutz@qt.io> | 2021-11-16 14:43:51 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2021-11-17 14:19:13 +0100 |
commit | ec291f9974ba6d25148955a0b9e55b30c589a9be (patch) | |
tree | 43d1b461b0d0d482b03e16f83b333817a9ed26a6 /src/render/geometry/qmesh_p.h | |
parent | 9f3f8da7454a33d5cae7d581c82672e999609d66 (diff) |
QGeometryFactory: don't make op== virtual
That's too clever, and it backfires with compilation errors in C++20
mode:
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:129:29: error: ambiguous overload for ‘operator==’ (operand types are ‘MeshFunctorA’ and ‘MeshFunctorB’)
129 | QVERIFY(!(*functorA == *functorB));
| ~~~~~~~~~ ^~ ~~~~~~~~~
| | |
| MeshFunctorA MeshFunctorB
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:72:10: note: candidate: ‘virtual bool MeshFunctorB::operator==(const Qt3DCore::QGeometryFactory&) const’ (reversed)
72 | bool operator ==(const Qt3DCore::QGeometryFactory &other) const override
| ^~~~~~~~
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:50:10: note: candidate: ‘virtual bool MeshFunctorA::operator==(const Qt3DCore::QGeometryFactory&) const’
50 | bool operator ==(const Qt3DCore::QGeometryFactory &other) const override
| ^~~~~~~~
Fix by providing a symmetric operator== for QGeometryFactory that
delegates to a virtual equals() method.
Pick-to: 6.2 5.15
Change-Id: I23d29ad1b16075629132f2b4757c5810d5615a36
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/geometry/qmesh_p.h')
-rw-r--r-- | src/render/geometry/qmesh_p.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/render/geometry/qmesh_p.h b/src/render/geometry/qmesh_p.h index 9d34a6ae6..e38f5779b 100644 --- a/src/render/geometry/qmesh_p.h +++ b/src/render/geometry/qmesh_p.h @@ -119,7 +119,7 @@ public : QMesh::Status status() const { return m_status; } Qt3DCore::QGeometry *operator()() override; - bool operator ==(const Qt3DCore::QGeometryFactory &other) const override; + bool equals(const Qt3DCore::QGeometryFactory &other) const override; QT3D_FUNCTOR(MeshLoaderFunctor) private: |