summaryrefslogtreecommitdiffstats
path: root/src/gui/math3d/qvector3d.h
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-10-27 23:59:16 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-10-29 08:51:44 +0100
commit7372dde4ec6cb32448ea026f48b5f5ea517f778d (patch)
tree3600af1e40442b8ff5a320c60cf37427848fb4b8 /src/gui/math3d/qvector3d.h
parent2222e695fcb547ed6c08f290b3b34bf36013eaad (diff)
Math 3D classes: make comparison operators hidden friends
Reduce ADL noise from QVector2/3/4D and from QQuaternion. Also mark as noexcept. Task-number: QTBUG-87973 Change-Id: Id14fd17c0da43517766b218ed85c3b41f91b43c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/gui/math3d/qvector3d.h')
-rw-r--r--src/gui/math3d/qvector3d.h29
1 files changed, 13 insertions, 16 deletions
diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h
index ecfdf82239..ac4f7dffef 100644
--- a/src/gui/math3d/qvector3d.h
+++ b/src/gui/math3d/qvector3d.h
@@ -112,8 +112,19 @@ public:
float distanceToPlane(const QVector3D& plane1, const QVector3D& plane2, const QVector3D& plane3) const;
float distanceToLine(const QVector3D& point, const QVector3D& direction) const;
- constexpr friend inline bool operator==(const QVector3D &v1, const QVector3D &v2);
- constexpr friend inline bool operator!=(const QVector3D &v1, const QVector3D &v2);
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_FLOAT_COMPARE
+ constexpr friend inline bool operator==(const QVector3D &v1, const QVector3D &v2) noexcept
+ {
+ return v1.v[0] == v2.v[0] && v1.v[1] == v2.v[1] && v1.v[2] == v2.v[2];
+ }
+
+ constexpr friend inline bool operator!=(const QVector3D &v1, const QVector3D &v2) noexcept
+ {
+ return v1.v[0] != v2.v[0] || v1.v[1] != v2.v[1] || v1.v[2] != v2.v[2];
+ }
+QT_WARNING_POP
+
constexpr friend inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2);
constexpr friend inline const QVector3D operator-(const QVector3D &v1, const QVector3D &v2);
constexpr friend inline const QVector3D operator*(float factor, const QVector3D &vector);
@@ -229,20 +240,6 @@ inline QVector3D &QVector3D::operator/=(const QVector3D &vector)
return *this;
}
-QT_WARNING_PUSH
-QT_WARNING_DISABLE_FLOAT_COMPARE
-
-constexpr inline bool operator==(const QVector3D &v1, const QVector3D &v2)
-{
- return v1.v[0] == v2.v[0] && v1.v[1] == v2.v[1] && v1.v[2] == v2.v[2];
-}
-
-constexpr inline bool operator!=(const QVector3D &v1, const QVector3D &v2)
-{
- return v1.v[0] != v2.v[0] || v1.v[1] != v2.v[1] || v1.v[2] != v2.v[2];
-}
-QT_WARNING_POP
-
constexpr inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2)
{
return QVector3D(v1.v[0] + v2.v[0], v1.v[1] + v2.v[1], v1.v[2] + v2.v[2]);