|
1 | 1 | #pragma once
|
2 | 2 | #include <avr/pgmspace.h>
|
3 | 3 | #include <WString.h>
|
4 |
| -#include <Nullptr.h> |
5 | 4 |
|
6 | 5 | template < typename A, typename B > struct Compare
|
7 | 6 | {
|
@@ -899,14 +898,22 @@ template < size_t N, size_t M > struct Compare<char [N],char [M]>
|
899 | 898 | } // moreOrEqual
|
900 | 899 | };
|
901 | 900 |
|
902 |
| -// null pointer comparisons |
903 |
| -template <typename B> int compareBetween( const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::between( a, b); } |
904 |
| -template <typename B> bool compareEqual( const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::equal( a, b); } |
905 |
| -template <typename B> bool compareNotEqual( const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::notEqual( a, b); } |
906 |
| -template <typename B> bool compareLess( const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::less( a, b); } |
907 |
| -template <typename B> bool compareMore( const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::more( a, b); } |
908 |
| -template <typename B> bool compareLessOrEqual(const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::lessOrEqual(a, b); } |
909 |
| -template <typename B> bool compareMoreOrEqual(const my_nullptr_t &a, const B &b) { return Compare<my_nullptr_t,B>::moreOrEqual(a, b); } |
| 901 | +// null pointer comparisons to other stuff |
| 902 | +template <typename A> int compareBetween( const A &a, const std::nullptr_t &b) { return a ? -1 : 0; } |
| 903 | +template <typename A> bool compareEqual( const A &a, const std::nullptr_t &b) { return !a; } |
| 904 | +template <typename A> bool compareNotEqual( const A &a, const std::nullptr_t &b) { return a; } |
| 905 | +template <typename A> bool compareLess( const A &a, const std::nullptr_t &b) { return false; } |
| 906 | +template <typename A> bool compareMore( const A &a, const std::nullptr_t &b) { return a; } |
| 907 | +template <typename A> bool compareLessOrEqual(const A &a, const std::nullptr_t &b) { return !a; } |
| 908 | +template <typename A> bool compareMoreOrEqual(const A &a, const std::nullptr_t &b) { return true; } |
| 909 | + |
| 910 | +template <typename B> int compareBetween( const std::nullptr_t &a, const B &b) { return b ? 1 : 0; } |
| 911 | +template <typename B> bool compareEqual( const std::nullptr_t &a, const B &b) { return !b; } |
| 912 | +template <typename B> bool compareNotEqual( const std::nullptr_t &a, const B &b) { return b; } |
| 913 | +template <typename B> bool compareLess( const std::nullptr_t &a, const B &b) { return b; } |
| 914 | +template <typename B> bool compareMore( const std::nullptr_t &a, const B &b) { return false; } |
| 915 | +template <typename B> bool compareLessOrEqual(const std::nullptr_t &a, const B &b) { return true; } |
| 916 | +template <typename B> bool compareMoreOrEqual(const std::nullptr_t &a, const B &b) { return !b; } |
910 | 917 |
|
911 | 918 | // super general comparisons
|
912 | 919 | template <typename A, typename B> int compareBetween( const A &a, const B &b) { return Compare<A,B>::between( a, b); }
|
|
0 commit comments