Browse Source

GCC 4.4 compatibility: issues with lack of explicit conversion operators.

Vladimír Vondruš 13 years ago
parent
commit
0db3a183ae
  1. 7
      src/Math/Test/ComplexTest.cpp
  2. 16
      src/Math/Test/FunctionsTest.cpp
  3. 7
      src/Math/Test/UnitTest.cpp
  4. 7
      src/Math/Test/Vector2Test.cpp
  5. 7
      src/Math/Test/Vector3Test.cpp
  6. 7
      src/Math/Test/Vector4Test.cpp
  7. 7
      src/Math/Test/VectorTest.cpp

7
src/Math/Test/ComplexTest.cpp

@ -129,7 +129,12 @@ void ComplexTest::constructFromVector() {
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vector2, Complex>::value));
CORRADE_VERIFY(!(std::is_convertible<Complex, Vector2>::value));
{
#ifdef CORRADE_GCC44_COMPATIBILITY
CORRADE_EXPECT_FAIL("GCC 4.4 doesn't have explicit conversion operators");
#endif
CORRADE_VERIFY(!(std::is_convertible<Complex, Vector2>::value));
}
}
void ComplexTest::constructCopy() {

16
src/Math/Test/FunctionsTest.cpp

@ -300,17 +300,17 @@ void FunctionsTest::trigonometric() {
void FunctionsTest::trigonometricWithBase() {
/* Verify that the functions can be called with Unit<Deg, T> and Unit<Rad, T> */
CORRADE_VERIFY((std::is_same<decltype(2*Deg(15.0f)), Unit<Math::Deg, Float>>::value));
CORRADE_VERIFY((std::is_same<decltype(2*Rad(Constants::pi()/12)), Unit<Math::Rad, Float>>::value));
CORRADE_VERIFY((std::is_same<decltype(Deg(15.0f)+Deg(15.0f)), Unit<Math::Deg, Float>>::value));
CORRADE_VERIFY((std::is_same<decltype(Rad(Constants::pi()/12)+Rad(Constants::pi()/12)), Unit<Math::Rad, Float>>::value));
CORRADE_COMPARE(Math::sin(2*Deg(15.0f)), 0.5f);
CORRADE_COMPARE(Math::sin(2*Rad(Constants::pi()/12)), 0.5f);
CORRADE_COMPARE(Math::sin(Deg(15.0f)+Deg(15.0f)), 0.5f);
CORRADE_COMPARE(Math::sin(Rad(Constants::pi()/12)+Rad(Constants::pi()/12)), 0.5f);
CORRADE_COMPARE(Math::cos(2*Deg(30.0f)), 0.5f);
CORRADE_COMPARE(Math::cos(2*Rad(Constants::pi()/6)), 0.5f);
CORRADE_COMPARE(Math::cos(Deg(30.0f)+Deg(30.0f)), 0.5f);
CORRADE_COMPARE(Math::cos(Rad(Constants::pi()/6)+Rad(Constants::pi()/6)), 0.5f);
CORRADE_COMPARE(Math::tan(2*Deg(22.5f)), 1.0f);
CORRADE_COMPARE(Math::tan(2*Rad(Constants::pi()/8)), 1.0f);
CORRADE_COMPARE(Math::tan(Deg(22.5f)+Deg(22.5f)), 1.0f);
CORRADE_COMPARE(Math::tan(Rad(Constants::pi()/8)+Rad(Constants::pi()/8)), 1.0f);
}
}}}

7
src/Math/Test/UnitTest.cpp

@ -67,7 +67,12 @@ void UnitTest::construct() {
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Float, Sec>::value));
CORRADE_VERIFY(!(std::is_convertible<Sec, Float>::value));
{
#ifdef CORRADE_GCC44_COMPATIBILITY
CORRADE_EXPECT_FAIL("GCC 4.4 doesn't have explicit conversion operators");
#endif
CORRADE_VERIFY(!(std::is_convertible<Sec, Float>::value));
}
}
void UnitTest::constructDefault() {

7
src/Math/Test/Vector2Test.cpp

@ -147,7 +147,12 @@ void Vector2Test::convert() {
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec2, Vector2>::value));
CORRADE_VERIFY(!(std::is_convertible<Vector2, Vec2>::value));
{
#ifdef CORRADE_GCC44_COMPATIBILITY
CORRADE_EXPECT_FAIL("GCC 4.4 doesn't have explicit conversion operators");
#endif
CORRADE_VERIFY(!(std::is_convertible<Vector2, Vec2>::value));
}
}
void Vector2Test::access() {

7
src/Math/Test/Vector3Test.cpp

@ -161,7 +161,12 @@ void Vector3Test::convert() {
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec3, Vector3>::value));
CORRADE_VERIFY(!(std::is_convertible<Vector3, Vec3>::value));
{
#ifdef CORRADE_GCC44_COMPATIBILITY
CORRADE_EXPECT_FAIL("GCC 4.4 doesn't have explicit conversion operators");
#endif
CORRADE_VERIFY(!(std::is_convertible<Vector3, Vec3>::value));
}
}
void Vector3Test::access() {

7
src/Math/Test/Vector4Test.cpp

@ -159,7 +159,12 @@ void Vector4Test::convert() {
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec4, Vector4>::value));
CORRADE_VERIFY(!(std::is_convertible<Vector4, Vec4>::value));
{
#ifdef CORRADE_GCC44_COMPATIBILITY
CORRADE_EXPECT_FAIL("GCC 4.4 doesn't have explicit conversion operators");
#endif
CORRADE_VERIFY(!(std::is_convertible<Vector4, Vec4>::value));
}
}
void Vector4Test::access() {

7
src/Math/Test/VectorTest.cpp

@ -223,7 +223,12 @@ void VectorTest::convert() {
/* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec3, Vector3>::value));
CORRADE_VERIFY(!(std::is_convertible<Vector3, Vec3>::value));
{
#ifdef CORRADE_GCC44_COMPATIBILITY
CORRADE_EXPECT_FAIL("GCC 4.4 doesn't have explicit conversion operators");
#endif
CORRADE_VERIFY(!(std::is_convertible<Vector3, Vec3>::value));
}
}
void VectorTest::data() {

Loading…
Cancel
Save