diff --git a/test/numeric_ops.cpp b/test/numeric_ops.cpp index 4c0b87e..4555c9e 100644 --- a/test/numeric_ops.cpp +++ b/test/numeric_ops.cpp @@ -86,6 +86,7 @@ struct equal_to_impl< complex_tag,complex_tag > }} +typedef int_<2> i; typedef complex< int_<5>, int_<-1> > c1; typedef complex< int_<-5>, int_<1> > c2; @@ -102,6 +103,16 @@ MPL_TEST_CASE() typedef plus::type r3; MPL_ASSERT_RELATION( real::value, ==, -10 ); MPL_ASSERT_RELATION( imag::value, ==, 2 ); + +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + typedef plus::type r4; + MPL_ASSERT_RELATION( real::value, ==, 7 ); + MPL_ASSERT_RELATION( imag::value, ==, -1 ); + + typedef plus::type r5; + MPL_ASSERT_RELATION( real::value, ==, -3 ); + MPL_ASSERT_RELATION( imag::value, ==, 1 ); +#endif } MPL_TEST_CASE() @@ -117,6 +128,16 @@ MPL_TEST_CASE() typedef times::type r3; MPL_ASSERT_RELATION( real::value, ==, 24 ); MPL_ASSERT_RELATION( imag::value, ==, -10 ); + +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + typedef times::type r4; + MPL_ASSERT_RELATION( real::value, ==, 10 ); + MPL_ASSERT_RELATION( imag::value, ==, -2 ); + + typedef times::type r5; + MPL_ASSERT_RELATION( real::value, ==, -10 ); + MPL_ASSERT_RELATION( imag::value, ==, 2 ); +#endif } MPL_TEST_CASE() @@ -126,4 +147,9 @@ MPL_TEST_CASE() MPL_ASSERT_NOT(( equal_to )); MPL_ASSERT(( equal_to, long_<-1> > > )); + +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + MPL_ASSERT_NOT(( equal_to )); + MPL_ASSERT_NOT(( equal_to )); +#endif }