diff --git a/doc/pointer_in_range.qbk b/doc/pointer_in_range.qbk index 7da7b6d8..5c6e69f2 100644 --- a/doc/pointer_in_range.qbk +++ b/doc/pointer_in_range.qbk @@ -33,7 +33,7 @@ template void Allocator::deallocate(pointer ptr, size_type) { - if (!boost::pointer_in_range(ptr, buffer_, buffer_ + N)) { + if (!boost::pointer_in_range(buffer_, ptr, buffer_ + N)) { ::operator delete(ptr); } } @@ -47,7 +47,7 @@ Allocator::deallocate(pointer ptr, size_type) namespace boost { template -constexpr bool pointer_in_range(const T* ptr, const T* begin, const T* end); +constexpr bool pointer_in_range(const T* begin, const T* ptr, const T* end); } /* boost */ ``` @@ -55,8 +55,8 @@ constexpr bool pointer_in_range(const T* ptr, const T* begin, const T* end); [section Functions] [variablelist -[[`template constexpr bool pointer_in_range(const T* ptr, -const T* begin, T* end);`] +[[`template constexpr bool pointer_in_range(const T* begin, +const T* ptr, T* end);`] [[variablelist [[Requires][`[begin,end)` is a valid range.]] [[Returns][`true` if `ptr` is in range `[begin,end)`, otherwise `false`.]]]]]] diff --git a/include/boost/core/pointer_in_range.hpp b/include/boost/core/pointer_in_range.hpp index 4957ff85..b0aa0a03 100644 --- a/include/boost/core/pointer_in_range.hpp +++ b/include/boost/core/pointer_in_range.hpp @@ -29,7 +29,7 @@ namespace boost { template inline BOOST_CONSTEXPR bool -pointer_in_range(const T* p, const T* b, const T* e) +pointer_in_range(const T* b, const T* p, const T* e) { #if defined(BOOST_CORE_DETAIL_HAS_IS_CONSTEVAL) if ( __builtin_is_constant_evaluated()) { diff --git a/test/pointer_in_range_constexpr_test.cpp b/test/pointer_in_range_constexpr_test.cpp index f695ff9d..95f583d8 100644 --- a/test/pointer_in_range_constexpr_test.cpp +++ b/test/pointer_in_range_constexpr_test.cpp @@ -14,18 +14,18 @@ int n = 0; const int b[4] = { 0, 0, 0, 0 }; const int m = 0; -BOOST_STATIC_ASSERT(!boost::pointer_in_range(&a[0], &a[1], a + 4)); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&a[1], &a[0], a + 4)); BOOST_STATIC_ASSERT(boost::pointer_in_range(&a[1], &a[1], a + 4)); -BOOST_STATIC_ASSERT(boost::pointer_in_range(&a[2], &a[1], a + 4)); -BOOST_STATIC_ASSERT(boost::pointer_in_range(&a[3], &a[1], a + 4)); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(a + 4, &a[1], a + 4)); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(&n, &a[0], &a[3])); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(&m, &a[0], &a[3])); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(&b[0], &b[1], b + 4)); +BOOST_STATIC_ASSERT(boost::pointer_in_range(&a[1], &a[2], a + 4)); +BOOST_STATIC_ASSERT(boost::pointer_in_range(&a[1], &a[3], a + 4)); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&a[1], a + 4, a + 4)); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&a[0], &n, &a[3])); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&a[0], &m, &a[3])); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&b[1], &b[0], b + 4)); BOOST_STATIC_ASSERT(boost::pointer_in_range(&b[1], &b[1], b + 4)); -BOOST_STATIC_ASSERT(boost::pointer_in_range(&b[2], &b[1], b + 4)); -BOOST_STATIC_ASSERT(boost::pointer_in_range(&b[3], &b[1], b + 4)); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(b + 4, &b[1], b + 4)); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(&n, &b[0], &b[3])); -BOOST_STATIC_ASSERT(!boost::pointer_in_range(&m, &b[0], &b[3])); +BOOST_STATIC_ASSERT(boost::pointer_in_range(&b[1], &b[2], b + 4)); +BOOST_STATIC_ASSERT(boost::pointer_in_range(&b[1], &b[3], b + 4)); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&b[1], b + 4, b + 4)); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&b[0], &n, &b[3])); +BOOST_STATIC_ASSERT(!boost::pointer_in_range(&b[0], &m, &b[3])); #endif diff --git a/test/pointer_in_range_test.cpp b/test/pointer_in_range_test.cpp index d89d5457..8e475309 100644 --- a/test/pointer_in_range_test.cpp +++ b/test/pointer_in_range_test.cpp @@ -14,19 +14,19 @@ int main() int n = 0; const int b[4] = { 0, 0, 0, 0 }; const int m = 0; - BOOST_TEST(!boost::pointer_in_range(&a[0], &a[1], a + 4)); + BOOST_TEST(!boost::pointer_in_range(&a[1], &a[0], a + 4)); BOOST_TEST(boost::pointer_in_range(&a[1], &a[1], a + 4)); - BOOST_TEST(boost::pointer_in_range(&a[2], &a[1], a + 4)); - BOOST_TEST(boost::pointer_in_range(&a[3], &a[1], a + 4)); - BOOST_TEST(!boost::pointer_in_range(a + 4, &a[1], a + 4)); - BOOST_TEST(!boost::pointer_in_range(&n, &a[0], &a[3])); - BOOST_TEST(!boost::pointer_in_range(&m, &a[0], &a[3])); - BOOST_TEST(!boost::pointer_in_range(&b[0], &b[1], b + 4)); + BOOST_TEST(boost::pointer_in_range(&a[1], &a[2], a + 4)); + BOOST_TEST(boost::pointer_in_range(&a[1], &a[3], a + 4)); + BOOST_TEST(!boost::pointer_in_range(&a[1], a + 4, a + 4)); + BOOST_TEST(!boost::pointer_in_range(&a[0], &n, &a[3])); + BOOST_TEST(!boost::pointer_in_range(&a[0], &m, &a[3])); + BOOST_TEST(!boost::pointer_in_range(&b[1], &b[0], b + 4)); BOOST_TEST(boost::pointer_in_range(&b[1], &b[1], b + 4)); - BOOST_TEST(boost::pointer_in_range(&b[2], &b[1], b + 4)); - BOOST_TEST(boost::pointer_in_range(&b[3], &b[1], b + 4)); - BOOST_TEST(!boost::pointer_in_range(b + 4, &b[1], b + 4)); - BOOST_TEST(!boost::pointer_in_range(&n, &b[0], &b[3])); - BOOST_TEST(!boost::pointer_in_range(&m, &b[0], &b[3])); + BOOST_TEST(boost::pointer_in_range(&b[1], &b[2], b + 4)); + BOOST_TEST(boost::pointer_in_range(&b[1], &b[3], b + 4)); + BOOST_TEST(!boost::pointer_in_range(&b[1], b + 4, b + 4)); + BOOST_TEST(!boost::pointer_in_range(&b[0], &n, &b[3])); + BOOST_TEST(!boost::pointer_in_range(&b[0], &m, &b[3])); return boost::report_errors(); }