diff --git a/src/Magnum/Math/Bezier.h b/src/Magnum/Math/Bezier.h index 11e12ef74..3f604cd7a 100644 --- a/src/Magnum/Math/Bezier.h +++ b/src/Magnum/Math/Bezier.h @@ -324,6 +324,7 @@ extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utili #endif #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -341,6 +342,7 @@ template struct StrictWeakOr }; } +#endif }} diff --git a/src/Magnum/Math/BitVector.h b/src/Magnum/Math/BitVector.h index 6cebea40a..86d1af412 100644 --- a/src/Magnum/Math/BitVector.h +++ b/src/Magnum/Math/BitVector.h @@ -417,6 +417,7 @@ template inline BitVector BitVector::operator~() c return out; } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -438,6 +439,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/Color.h b/src/Magnum/Math/Color.h index cfcb16b09..f826180dd 100644 --- a/src/Magnum/Math/Color.h +++ b/src/Magnum/Math/Color.h @@ -1599,9 +1599,10 @@ namespace Implementation { template struct TypeForSize<3, Color4> { typedef Color3 Type; }; template struct TypeForSize<4, Color3> { typedef Color4 Type; }; template struct TypeForSize<4, Color4> { typedef Color4 Type; }; - + #ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING template struct StrictWeakOrdering>: StrictWeakOrdering> {}; template struct StrictWeakOrdering>: StrictWeakOrdering> {}; + #endif } }} diff --git a/src/Magnum/Math/Complex.h b/src/Magnum/Math/Complex.h index a8062abf1..d0d49b507 100644 --- a/src/Magnum/Math/Complex.h +++ b/src/Magnum/Math/Complex.h @@ -672,6 +672,7 @@ extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utili #endif #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -686,6 +687,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/CubicHermite.h b/src/Magnum/Math/CubicHermite.h index 542b6b4a3..4c23509e5 100644 --- a/src/Magnum/Math/CubicHermite.h +++ b/src/Magnum/Math/CubicHermite.h @@ -558,6 +558,7 @@ template inline bool CubicHermite::operator==(const CubicHermite& TypeTraits::equals(_outTangent, other._outTangent); } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -576,6 +577,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/Dual.h b/src/Magnum/Math/Dual.h index 19d8be530..842830111 100644 --- a/src/Magnum/Math/Dual.h +++ b/src/Magnum/Math/Dual.h @@ -422,6 +422,7 @@ template std::pair, Dual> sincos(const Dual>& a template std::pair, Dual> sincos(const Dual>& angle) { return sincos(Dual>(angle)); } #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -437,6 +438,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/DualComplex.h b/src/Magnum/Math/DualComplex.h index 72057b202..4f82d4e98 100644 --- a/src/Magnum/Math/DualComplex.h +++ b/src/Magnum/Math/DualComplex.h @@ -421,9 +421,11 @@ extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utili #endif #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering>: StrictWeakOrdering>> {}; } +#endif }} diff --git a/src/Magnum/Math/DualQuaternion.h b/src/Magnum/Math/DualQuaternion.h index e0eac8e22..5da2ed61e 100644 --- a/src/Magnum/Math/DualQuaternion.h +++ b/src/Magnum/Math/DualQuaternion.h @@ -589,9 +589,11 @@ extern template MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utili #endif #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering>: StrictWeakOrdering>> {}; } +#endif }} diff --git a/src/Magnum/Math/Frustum.h b/src/Magnum/Math/Frustum.h index 6fc11fdb2..978fdf28a 100644 --- a/src/Magnum/Math/Frustum.h +++ b/src/Magnum/Math/Frustum.h @@ -311,6 +311,7 @@ template template constexpr Frustum::Frustum(const Frustum< Vector4{other[4]}, Vector4{other[5]}} {} +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -328,6 +329,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/Half.h b/src/Magnum/Math/Half.h index eb660561c..30f3aa8c9 100644 --- a/src/Magnum/Math/Half.h +++ b/src/Magnum/Math/Half.h @@ -188,6 +188,7 @@ Prints the value with 4 significant digits. MAGNUM_EXPORT Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug& debug, Half value); #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template<> struct StrictWeakOrdering { @@ -198,6 +199,7 @@ template<> struct StrictWeakOrdering { }; } +#endif }} diff --git a/src/Magnum/Math/Math.h b/src/Magnum/Math/Math.h index ff11d749d..687ccde6e 100644 --- a/src/Magnum/Math/Math.h +++ b/src/Magnum/Math/Math.h @@ -109,10 +109,12 @@ template using Range1D = Range<1, T>; template class Range2D; template class Range3D; +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering; } #endif +#endif }} diff --git a/src/Magnum/Math/Matrix.h b/src/Magnum/Math/Matrix.h index 4be96100e..35a5984fc 100644 --- a/src/Magnum/Math/Matrix.h +++ b/src/Magnum/Math/Matrix.h @@ -447,7 +447,9 @@ template struct MatrixDeterminant<1, T> { } }; +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING template struct StrictWeakOrdering>: StrictWeakOrdering> {}; +#endif } #endif diff --git a/src/Magnum/Math/Matrix3.h b/src/Magnum/Math/Matrix3.h index 33f96d3b1..469ec4f74 100644 --- a/src/Magnum/Math/Matrix3.h +++ b/src/Magnum/Math/Matrix3.h @@ -792,9 +792,11 @@ template inline Matrix3 Matrix3::invertedRigid() const { return from(inverseRotation, inverseRotation*-translation()); } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering>: StrictWeakOrdering> {}; } +#endif }} diff --git a/src/Magnum/Math/Matrix4.h b/src/Magnum/Math/Matrix4.h index c26657c78..16b19c129 100644 --- a/src/Magnum/Math/Matrix4.h +++ b/src/Magnum/Math/Matrix4.h @@ -1357,9 +1357,11 @@ template Matrix4 Matrix4::invertedRigid() const { return from(inverseRotation, inverseRotation*-translation()); } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering>: StrictWeakOrdering> {}; } +#endif }} diff --git a/src/Magnum/Math/Quaternion.h b/src/Magnum/Math/Quaternion.h index 03ff4a13d..de6521629 100644 --- a/src/Magnum/Math/Quaternion.h +++ b/src/Magnum/Math/Quaternion.h @@ -945,6 +945,7 @@ template inline Vector3 Quaternion::transformVectorNormalized(con return vector + _scalar*t + Math::cross(_vector, t); } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -960,6 +961,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/Range.h b/src/Magnum/Math/Range.h index 6b448817b..f73f98d01 100644 --- a/src/Magnum/Math/Range.h +++ b/src/Magnum/Math/Range.h @@ -824,6 +824,7 @@ template inline bool Range::oper TypeTraits::equals(_max, other._max); } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -838,6 +839,7 @@ template struct StrictWeakOrdering template struct StrictWeakOrdering> { @@ -890,6 +891,7 @@ template struct StrictWeakOrdering< }; } +#endif }} diff --git a/src/Magnum/Math/Vector.h b/src/Magnum/Math/Vector.h index 529fb7577..19910e024 100644 --- a/src/Magnum/Math/Vector.h +++ b/src/Magnum/Math/Vector.h @@ -1585,6 +1585,7 @@ template inline std::pair Vector::minm return {min, max}; } +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct StrictWeakOrdering> { @@ -1601,6 +1602,7 @@ template struct StrictWeakOrdering> { }; } +#endif }} diff --git a/src/Magnum/Math/Vector2.h b/src/Magnum/Math/Vector2.h index 8170d27f1..3653a0445 100644 --- a/src/Magnum/Math/Vector2.h +++ b/src/Magnum/Math/Vector2.h @@ -238,8 +238,9 @@ MAGNUM_VECTORn_OPERATOR_IMPLEMENTATION(2, Vector2) namespace Implementation { template struct TypeForSize; template struct TypeForSize<2, T> { typedef Math::Vector2 Type; }; - + #ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING template struct StrictWeakOrdering>: StrictWeakOrdering> {}; + #endif } }} diff --git a/src/Magnum/Math/Vector3.h b/src/Magnum/Math/Vector3.h index 54ba395d3..2ef697c37 100644 --- a/src/Magnum/Math/Vector3.h +++ b/src/Magnum/Math/Vector3.h @@ -262,11 +262,13 @@ template class Vector3: public Vector<3, T> { MAGNUM_VECTORn_OPERATOR_IMPLEMENTATION(3, Vector3) #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct TypeForSize<3, T> { typedef Math::Vector3 Type; }; template struct StrictWeakOrdering>: StrictWeakOrdering> {}; } +#endif }} diff --git a/src/Magnum/Math/Vector4.h b/src/Magnum/Math/Vector4.h index 6ac0e8448..c48d4c529 100644 --- a/src/Magnum/Math/Vector4.h +++ b/src/Magnum/Math/Vector4.h @@ -284,11 +284,13 @@ template Vector4 planeEquation(const Vector3& normal, const Vecto MAGNUM_VECTORn_OPERATOR_IMPLEMENTATION(4, Vector4) #endif +#ifndef MAGNUM_NO_MATH_STRICT_WEAK_ORDERING namespace Implementation { template struct TypeForSize<4, T> { typedef Math::Vector4 Type; }; template struct StrictWeakOrdering>: StrictWeakOrdering> {}; } +#endif }} diff --git a/src/singles/MagnumMath.hpp b/src/singles/MagnumMath.hpp index a226207ed..3a1ae422a 100644 --- a/src/singles/MagnumMath.hpp +++ b/src/singles/MagnumMath.hpp @@ -95,6 +95,10 @@ #pragma ACME enable CORRADE_INTERNAL_CONSTEXPR_ASSERT #pragma ACME enable CORRADE_INTERNAL_CONSTEXPR_DEBUG_ASSERT +/* Disable strict weak ordering helpers as they're non-essential. The + StrictWeakOrdering.h header isn't included either. */ +#pragma ACME enable MAGNUM_NO_MATH_STRICT_WEAK_ORDERING + /* We don't need everything from configure.h here */ #pragma ACME enable Corrade_configure_h #pragma ACME enable Magnum_configure_h @@ -379,7 +383,6 @@ typedef Math::Frustum Frustumd; #include "Magnum/Math/Quaternion.h" #include "Magnum/Math/Range.h" #include "Magnum/Math/RectangularMatrix.h" -#include "Magnum/Math/StrictWeakOrdering.h" #include "Magnum/Math/Swizzle.h" #include "Magnum/Math/Tags.h" #include "Magnum/Math/TypeTraits.h"