From 0693db0847953f65e7bd98519cd7fc2c312e949c Mon Sep 17 00:00:00 2001 From: Bryce Adelstein-Lelbach Date: Fri, 14 Jan 2011 17:37:59 +0000 Subject: [PATCH] Fixed ambiguity issues when compiling with C++0x support enabled. [SVN r68155] --- include/boost/detail/is_sorted.hpp | 14 +++---- test/is_sorted_test.cpp | 65 +++++++++++++++--------------- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/include/boost/detail/is_sorted.hpp b/include/boost/detail/is_sorted.hpp index 91f254c..5ab32e5 100644 --- a/include/boost/detail/is_sorted.hpp +++ b/include/boost/detail/is_sorted.hpp @@ -16,14 +16,14 @@ namespace boost { namespace detail { template -inline Iterator is_sorted_until (Iterator first, Iterator last, Comp compare) { +inline Iterator is_sorted_until (Iterator first, Iterator last, Comp c) { if (first == last) return last; Iterator it = first; ++it; for (; it != last; first = it, ++it) - if (compare(*it, *first)) + if (c(*it, *first)) return it; return it; @@ -34,19 +34,19 @@ inline Iterator is_sorted_until (Iterator first, Iterator last) { typedef typename boost::detail::iterator_traits::value_type value_type; - typedef std::less compare; + typedef std::less c; - return is_sorted_until(first, last, compare()); + return ::boost::detail::is_sorted_until(first, last, c()); } template -inline bool is_sorted (Iterator first, Iterator last, Comp compare) { - return is_sorted_until(first, last, compare) == last; +inline bool is_sorted (Iterator first, Iterator last, Comp c) { + return ::boost::detail::is_sorted_until(first, last, c) == last; } template inline bool is_sorted (Iterator first, Iterator last) { - return is_sorted_until(first, last) == last; + return ::boost::detail::is_sorted_until(first, last) == last; } } // detail diff --git a/test/is_sorted_test.cpp b/test/is_sorted_test.cpp index 36c03bc..036c10a 100644 --- a/test/is_sorted_test.cpp +++ b/test/is_sorted_test.cpp @@ -71,9 +71,10 @@ struct tracking_greater_equal: std::binary_function { } }; + int main (void) { - using boost::detail::is_sorted; - using boost::detail::is_sorted_until; + #define IS_SORTED ::boost::detail::is_sorted + #define IS_SORTED_UNTIL ::boost::detail::is_sorted_until using boost::array; using boost::report_errors; @@ -88,41 +89,41 @@ int main (void) { tracking_greater gt; tracking_greater_equal gte; - BOOST_TEST_EQ(is_sorted_until(a.begin(), a.end()), a.end()); - BOOST_TEST_EQ(is_sorted_until(a.begin(), a.end(), lt), a.end()); - BOOST_TEST_EQ(is_sorted_until(a.begin(), a.end(), lte), a.end()); - BOOST_TEST_EQ(*is_sorted_until(a.rbegin(), a.rend(), gt), *a.rend()); - BOOST_TEST_EQ(*is_sorted_until(a.rbegin(), a.rend(), gte), *a.rend()); + BOOST_TEST_EQ(IS_SORTED_UNTIL(a.begin(), a.end()), a.end()); + BOOST_TEST_EQ(IS_SORTED_UNTIL(a.begin(), a.end(), lt), a.end()); + BOOST_TEST_EQ(IS_SORTED_UNTIL(a.begin(), a.end(), lte), a.end()); + BOOST_TEST_EQ(*IS_SORTED_UNTIL(a.rbegin(), a.rend(), gt), *a.rend()); + BOOST_TEST_EQ(*IS_SORTED_UNTIL(a.rbegin(), a.rend(), gte), *a.rend()); - BOOST_TEST_EQ(is_sorted(a.begin(), a.end()), true); - BOOST_TEST_EQ(is_sorted(a.begin(), a.end(), lt), true); - BOOST_TEST_EQ(is_sorted(a.begin(), a.end(), lte), true); - BOOST_TEST_EQ(is_sorted(a.rbegin(), a.rend(), gt), true); - BOOST_TEST_EQ(is_sorted(a.rbegin(), a.rend(), gte), true); + BOOST_TEST_EQ(IS_SORTED(a.begin(), a.end()), true); + BOOST_TEST_EQ(IS_SORTED(a.begin(), a.end(), lt), true); + BOOST_TEST_EQ(IS_SORTED(a.begin(), a.end(), lte), true); + BOOST_TEST_EQ(IS_SORTED(a.rbegin(), a.rend(), gt), true); + BOOST_TEST_EQ(IS_SORTED(a.rbegin(), a.rend(), gte), true); - BOOST_TEST_EQ(is_sorted_until(b.begin(), b.end()), b.end()); - BOOST_TEST_EQ(is_sorted_until(b.begin(), b.end(), lt), b.end()); - BOOST_TEST_EQ(is_sorted_until(b.begin(), b.end(), lte), &b[2]); - BOOST_TEST_EQ(*is_sorted_until(b.rbegin(), b.rend(), gt), *b.rend()); - BOOST_TEST_EQ(*is_sorted_until(b.rbegin(), b.rend(), gte), b[2]); + BOOST_TEST_EQ(IS_SORTED_UNTIL(b.begin(), b.end()), b.end()); + BOOST_TEST_EQ(IS_SORTED_UNTIL(b.begin(), b.end(), lt), b.end()); + BOOST_TEST_EQ(IS_SORTED_UNTIL(b.begin(), b.end(), lte), &b[2]); + BOOST_TEST_EQ(*IS_SORTED_UNTIL(b.rbegin(), b.rend(), gt), *b.rend()); + BOOST_TEST_EQ(*IS_SORTED_UNTIL(b.rbegin(), b.rend(), gte), b[2]); - BOOST_TEST_EQ(is_sorted(b.begin(), b.end()), true); - BOOST_TEST_EQ(is_sorted(b.begin(), b.end(), lt), true); - BOOST_TEST_EQ(is_sorted(b.begin(), b.end(), lte), false); - BOOST_TEST_EQ(is_sorted(b.rbegin(), b.rend(), gt), true); - BOOST_TEST_EQ(is_sorted(b.rbegin(), b.rend(), gte), false); + BOOST_TEST_EQ(IS_SORTED(b.begin(), b.end()), true); + BOOST_TEST_EQ(IS_SORTED(b.begin(), b.end(), lt), true); + BOOST_TEST_EQ(IS_SORTED(b.begin(), b.end(), lte), false); + BOOST_TEST_EQ(IS_SORTED(b.rbegin(), b.rend(), gt), true); + BOOST_TEST_EQ(IS_SORTED(b.rbegin(), b.rend(), gte), false); - BOOST_TEST_EQ(is_sorted_until(c.begin(), c.end()), &c[2]); - BOOST_TEST_EQ(is_sorted_until(c.begin(), c.end(), lt), &c[2]); - BOOST_TEST_EQ(is_sorted_until(c.begin(), c.end(), lte), &c[2]); - BOOST_TEST_EQ(*is_sorted_until(c.rbegin(), c.rend(), gt), c[7]); - BOOST_TEST_EQ(*is_sorted_until(c.rbegin(), c.rend(), gte), c[7]); + BOOST_TEST_EQ(IS_SORTED_UNTIL(c.begin(), c.end()), &c[2]); + BOOST_TEST_EQ(IS_SORTED_UNTIL(c.begin(), c.end(), lt), &c[2]); + BOOST_TEST_EQ(IS_SORTED_UNTIL(c.begin(), c.end(), lte), &c[2]); + BOOST_TEST_EQ(*IS_SORTED_UNTIL(c.rbegin(), c.rend(), gt), c[7]); + BOOST_TEST_EQ(*IS_SORTED_UNTIL(c.rbegin(), c.rend(), gte), c[7]); - BOOST_TEST_EQ(is_sorted(c.begin(), c.end()), false); - BOOST_TEST_EQ(is_sorted(c.begin(), c.end(), lt), false); - BOOST_TEST_EQ(is_sorted(c.begin(), c.end(), lte), false); - BOOST_TEST_EQ(is_sorted(c.rbegin(), c.rend(), gt), false); - BOOST_TEST_EQ(is_sorted(c.rbegin(), c.rend(), gte), false); + BOOST_TEST_EQ(IS_SORTED(c.begin(), c.end()), false); + BOOST_TEST_EQ(IS_SORTED(c.begin(), c.end(), lt), false); + BOOST_TEST_EQ(IS_SORTED(c.begin(), c.end(), lte), false); + BOOST_TEST_EQ(IS_SORTED(c.rbegin(), c.rend(), gt), false); + BOOST_TEST_EQ(IS_SORTED(c.rbegin(), c.rend(), gte), false); return report_errors(); }