diff --git a/tests/is_convertible_test.cpp b/tests/is_convertible_test.cpp index b62288d..ce210ca 100644 --- a/tests/is_convertible_test.cpp +++ b/tests/is_convertible_test.cpp @@ -15,6 +15,12 @@ struct convertible_from convertible_from(T); }; +#ifndef __BORLANDC__ +# define maybe_value_test value_test +#else +# define maybe_value_test value_fail +#endif + int cpp_main(int argc, char* argv[]) { value_test(true, (boost::is_convertible::value)); @@ -26,24 +32,6 @@ int cpp_main(int argc, char* argv[]) value_test(false, (boost::is_convertible::value)); value_test(true, (boost::is_convertible::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(false, (boost::is_convertible >::value)); - - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - value_test(true, (boost::is_convertible >::value)); - #ifdef BOOST_MSVC6_MEMBER_TEMPLATES value_test(false, (boost::is_convertible::value)); value_test(false, (boost::is_convertible::value)); @@ -76,13 +64,33 @@ int cpp_main(int argc, char* argv[]) value_test(false, (boost::is_convertible::value)); value_test(true, (boost::is_convertible::value)); value_test(true, (boost::is_convertible::value)); - #ifndef __BORLANDC__ - value_test(true, (boost::is_convertible::value)); - #endif value_test(false, (boost::is_convertible::value)); value_test(false, (boost::is_convertible::value)); value_test(false, (boost::is_convertible::value)); + // + // the following tests all involve user defined conversions which do + // not compile with Borland C++ Builder: + // + maybe_value_test(true, (boost::is_convertible::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(false, (boost::is_convertible >::value)); + + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + maybe_value_test(true, (boost::is_convertible >::value)); + return check_result(argc, argv); } @@ -99,4 +107,3 @@ unsigned int expected_failures = 0; -