diff --git a/test/contains_test.cpp b/test/contains_test.cpp index 36d97b9..31963c0 100644 --- a/test/contains_test.cpp +++ b/test/contains_test.cpp @@ -31,6 +31,8 @@ bool operator==(const ReturnInt& x, const ReturnInt& y) bool operator!=(const ReturnInt& x, const ReturnInt& y) { return x.value != y.value; } +namespace contain_test { + struct ReturnIntFE { explicit ReturnIntFE(int value) : value(value) {} @@ -40,11 +42,35 @@ struct ReturnIntFE int value; }; -namespace boost { - bool function_equal(const ReturnIntFE& x, const ReturnIntFE& y) - { return x.value == y.value; } } +#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP + +namespace contain_test { +# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +bool function_equal(const ReturnIntFE& x, const ReturnIntFE& y) +{ return x.value == y.value; } +# else +bool function_equal_impl(const ReturnIntFE& x, const ReturnIntFE& y, int) +{ return x.value == y.value; } +# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +} +#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +namespace boost { +# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING +bool +function_equal(const contain_test::ReturnIntFE& x, + const contain_test::ReturnIntFE& y) +{ return x.value == y.value; } +# else +bool +function_equal_impl(const contain_test::ReturnIntFE& x, + const contain_test::ReturnIntFE& y, int) +{ return x.value == y.value; } +# endif +} +#endif + static void target_test() { boost::function0 f; @@ -90,17 +116,17 @@ static void equal_test() BOOST_CHECK(f.contains(ReturnInt(17))); - f = ReturnIntFE(17); + f = contain_test::ReturnIntFE(17); BOOST_CHECK(f != &forty_two); - BOOST_CHECK(f == ReturnIntFE(17)); - BOOST_CHECK(f != ReturnIntFE(16)); + BOOST_CHECK(f == contain_test::ReturnIntFE(17)); + BOOST_CHECK(f != contain_test::ReturnIntFE(16)); #if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) BOOST_CHECK(&forty_two != f); - BOOST_CHECK(ReturnIntFE(17) == f); - BOOST_CHECK(ReturnIntFE(16) != f); + BOOST_CHECK(contain_test::ReturnIntFE(17) == f); + BOOST_CHECK(contain_test::ReturnIntFE(16) != f); #endif - BOOST_CHECK(f.contains(ReturnIntFE(17))); + BOOST_CHECK(f.contains(contain_test::ReturnIntFE(17))); #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) boost::function g;