diff --git a/include/boost/algorithm/is_palindrome.hpp b/include/boost/algorithm/is_palindrome.hpp index 8649ad6..cc63e18 100644 --- a/include/boost/algorithm/is_palindrome.hpp +++ b/include/boost/algorithm/is_palindrome.hpp @@ -17,7 +17,6 @@ #include #include -#include #include #include @@ -134,10 +133,8 @@ bool is_palindrome(const R& range, Predicate p) /// Complexity: O(N). bool is_palindrome(const char* str) { - if(str == nullptr) - { - return true; - } + if(!str) + return true; return is_palindrome(str, str + strlen(str)); } @@ -154,10 +151,8 @@ bool is_palindrome(const char* str) template bool is_palindrome(const char* str, Predicate p) { - if(str == nullptr) - { - return true; - } + if(!str) + return true; return is_palindrome(str, str + strlen(str), p); } diff --git a/test/is_palindrome_test.cpp b/test/is_palindrome_test.cpp index e15668f..c668e9d 100644 --- a/test/is_palindrome_test.cpp +++ b/test/is_palindrome_test.cpp @@ -38,6 +38,8 @@ struct functorComparator } }; +#define Begin(arr) (arr) +#define End(arr) (arr+(sizeof(arr)/(sizeof(arr[0])))) void test_is_palindrome() { @@ -47,26 +49,26 @@ void test_is_palindrome() const int oddPalindrome[] = {1,2,3,2,1}; const int evenPalindrome[] = {1,2,2,1}; int evenNonPalindrome[] = {1,4,8,8}; - const char* stringNullPtr = nullptr; + const char* stringNullPtr = NULL; // Test a default operator== BOOST_CHECK ( ba::is_palindrome(empty)); BOOST_CHECK ( ba::is_palindrome(singleElement)); - BOOST_CHECK (!ba::is_palindrome(std::begin(oddNonPalindrome), std::end(oddNonPalindrome))); - BOOST_CHECK ( ba::is_palindrome(std::begin(oddPalindrome), std::end(oddPalindrome))); - BOOST_CHECK ( ba::is_palindrome(std::begin(evenPalindrome), std::end(evenPalindrome))); - BOOST_CHECK (!ba::is_palindrome(std::begin(evenNonPalindrome), std::end(evenNonPalindrome))); + BOOST_CHECK (!ba::is_palindrome(Begin(oddNonPalindrome), End(oddNonPalindrome))); + BOOST_CHECK ( ba::is_palindrome(Begin(oddPalindrome), End(oddPalindrome))); + BOOST_CHECK ( ba::is_palindrome(Begin(evenPalindrome), End(evenPalindrome))); + BOOST_CHECK (!ba::is_palindrome(Begin(evenNonPalindrome), End(evenNonPalindrome))); //Test the custom comparators BOOST_CHECK ( ba::is_palindrome(empty.begin(), empty.end(), functorComparator())); - BOOST_CHECK (!ba::is_palindrome(std::begin(oddNonPalindrome), std::end(oddNonPalindrome), funcComparator)); + BOOST_CHECK (!ba::is_palindrome(Begin(oddNonPalindrome), End(oddNonPalindrome), funcComparator)); BOOST_CHECK ( ba::is_palindrome(evenPalindrome, std::equal_to())); //Test C-strings like cases BOOST_CHECK ( ba::is_palindrome(stringNullPtr)); BOOST_CHECK ( ba::is_palindrome("")); BOOST_CHECK ( ba::is_palindrome("a")); - BOOST_CHECK ( ba::is_palindrome("abacaba"), std::equal_to()); + BOOST_CHECK ( ba::is_palindrome("abacaba", std::equal_to())); BOOST_CHECK ( ba::is_palindrome("abba")); BOOST_CHECK (!ba::is_palindrome("acab")); }