diff --git a/src/Math/Angle.cpp b/src/Math/Angle.cpp index 73f128ac1..bbf6ed37c 100644 --- a/src/Math/Angle.cpp +++ b/src/Math/Angle.cpp @@ -18,11 +18,11 @@ namespace Magnum { namespace Math { #ifndef DOXYGEN_GENERATING_OUTPUT -template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Rad&); -template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Deg&); +template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Unit&); +template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Unit&); #ifndef MAGNUM_TARGET_GLES -template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Rad&); -template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Deg&); +template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Unit&); +template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug, const Unit&); #endif #endif diff --git a/src/Math/Angle.h b/src/Math/Angle.h index c1b136b8c..a692572fc 100644 --- a/src/Math/Angle.h +++ b/src/Math/Angle.h @@ -219,7 +219,7 @@ template inline constexpr Deg::Deg(Unit value): Unit template inline constexpr Rad::Rad(Unit value): Unit(T(value)*Math::Constants::pi()/T(180)) {} /** @debugoperator{Magnum::Math::Rad} */ -template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug debug, const Rad& value) { +template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug debug, const Unit& value) { debug << "Rad("; debug.setFlag(Corrade::Utility::Debug::SpaceAfterEachValue, false); debug << T(value) << ")"; @@ -228,7 +228,7 @@ template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug deb } /** @debugoperator{Magnum::Math::Deg} */ -template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug debug, const Deg& value) { +template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug debug, const Unit& value) { debug << "Deg("; debug.setFlag(Corrade::Utility::Debug::SpaceAfterEachValue, false); debug << T(value) << ")"; @@ -238,11 +238,11 @@ template Corrade::Utility::Debug operator<<(Corrade::Utility::Debug deb /* Explicit instantiation for commonly used types */ #ifndef DOXYGEN_GENERATING_OUTPUT -extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Rad&); -extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Deg&); +extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Unit&); +extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Unit&); #ifndef MAGNUM_TARGET_GLES -extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Rad&); -extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Deg&); +extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Unit&); +extern template Corrade::Utility::Debug MAGNUM_EXPORT operator<<(Corrade::Utility::Debug, const Unit&); #endif #endif diff --git a/src/Math/Test/AngleTest.cpp b/src/Math/Test/AngleTest.cpp index dae6cef93..fbd71685c 100644 --- a/src/Math/Test/AngleTest.cpp +++ b/src/Math/Test/AngleTest.cpp @@ -92,22 +92,32 @@ void AngleTest::conversion() { constexpr Deg a(Rad(1.57079633f)); CORRADE_COMPARE(float(a), 90.0f); - constexpr Rad b(Deg(90.0)); + constexpr Rad b(Deg(90.0f)); CORRADE_COMPARE(float(b), 1.57079633f); } void AngleTest::debugDeg() { std::ostringstream o; - Debug(&o) << Deg(90.0); + Debug(&o) << Deg(90.0f); CORRADE_COMPARE(o.str(), "Deg(90)\n"); + + /* Verify that this compiles */ + o.str({}); + Debug(&o) << Deg(56.0f) - Deg(34.0f); + CORRADE_COMPARE(o.str(), "Deg(22)\n"); } void AngleTest::debugRad() { std::ostringstream o; - Debug(&o) << Rad(1.5708); + Debug(&o) << Rad(1.5708f); CORRADE_COMPARE(o.str(), "Rad(1.5708)\n"); + + /* Verify that this compiles */ + o.str({}); + Debug(&o) << Rad(1.5708f) - Rad(3.1416f); + CORRADE_COMPARE(o.str(), "Rad(-1.5708)\n"); } }}}