Browse Source

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

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

5
src/Math/Test/ComplexTest.cpp

@ -129,8 +129,13 @@ void ComplexTest::constructFromVector() {
/* Implicit conversion is not allowed */ /* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vector2, Complex>::value)); CORRADE_VERIFY(!(std::is_convertible<Vector2, Complex>::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)); CORRADE_VERIFY(!(std::is_convertible<Complex, Vector2>::value));
} }
}
void ComplexTest::constructCopy() { void ComplexTest::constructCopy() {
constexpr Complex a(2.5f, -5.0f); constexpr Complex a(2.5f, -5.0f);

16
src/Math/Test/FunctionsTest.cpp

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

5
src/Math/Test/UnitTest.cpp

@ -67,8 +67,13 @@ void UnitTest::construct() {
/* Implicit conversion is not allowed */ /* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Float, Sec>::value)); CORRADE_VERIFY(!(std::is_convertible<Float, Sec>::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)); CORRADE_VERIFY(!(std::is_convertible<Sec, Float>::value));
} }
}
void UnitTest::constructDefault() { void UnitTest::constructDefault() {
constexpr Sec b; constexpr Sec b;

5
src/Math/Test/Vector2Test.cpp

@ -147,8 +147,13 @@ void Vector2Test::convert() {
/* Implicit conversion is not allowed */ /* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec2, Vector2>::value)); CORRADE_VERIFY(!(std::is_convertible<Vec2, Vector2>::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)); CORRADE_VERIFY(!(std::is_convertible<Vector2, Vec2>::value));
} }
}
void Vector2Test::access() { void Vector2Test::access() {
Vector2 vec(1.0f, -2.0f); Vector2 vec(1.0f, -2.0f);

5
src/Math/Test/Vector3Test.cpp

@ -161,8 +161,13 @@ void Vector3Test::convert() {
/* Implicit conversion is not allowed */ /* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec3, Vector3>::value)); CORRADE_VERIFY(!(std::is_convertible<Vec3, Vector3>::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)); CORRADE_VERIFY(!(std::is_convertible<Vector3, Vec3>::value));
} }
}
void Vector3Test::access() { void Vector3Test::access() {
Vector3 vec(1.0f, -2.0f, 5.0f); Vector3 vec(1.0f, -2.0f, 5.0f);

5
src/Math/Test/Vector4Test.cpp

@ -159,8 +159,13 @@ void Vector4Test::convert() {
/* Implicit conversion is not allowed */ /* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec4, Vector4>::value)); CORRADE_VERIFY(!(std::is_convertible<Vec4, Vector4>::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)); CORRADE_VERIFY(!(std::is_convertible<Vector4, Vec4>::value));
} }
}
void Vector4Test::access() { void Vector4Test::access() {
Vector4 vec(1.0f, -2.0f, 5.0f, 0.5f); Vector4 vec(1.0f, -2.0f, 5.0f, 0.5f);

5
src/Math/Test/VectorTest.cpp

@ -223,8 +223,13 @@ void VectorTest::convert() {
/* Implicit conversion is not allowed */ /* Implicit conversion is not allowed */
CORRADE_VERIFY(!(std::is_convertible<Vec3, Vector3>::value)); CORRADE_VERIFY(!(std::is_convertible<Vec3, Vector3>::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)); CORRADE_VERIFY(!(std::is_convertible<Vector3, Vec3>::value));
} }
}
void VectorTest::data() { void VectorTest::data() {
Vector4 vector(4.0f, 5.0f, 6.0f, 7.0f); Vector4 vector(4.0f, 5.0f, 6.0f, 7.0f);

Loading…
Cancel
Save