|
1 | 1 | #pragma once
|
2 | 2 | #include <avr/pgmspace.h>
|
3 | 3 | #include <WString.h>
|
| 4 | +#include <Nullptr.h> |
4 | 5 |
|
5 | 6 | template < typename A, typename B > struct Compare
|
6 | 7 | {
|
@@ -897,10 +898,21 @@ template < size_t N, size_t M > struct Compare<char [N],char [M]>
|
897 | 898 | return between(a,b) >= 0;
|
898 | 899 | } // moreOrEqual
|
899 | 900 | };
|
900 |
| -template <typename A, typename B> int compareBetween(const A &a, const B &b) { return Compare<A,B>::between(a,b); } |
901 |
| -template <typename A, typename B> bool compareEqual(const A &a, const B &b) { return Compare<A,B>::equal(a,b); } |
902 |
| -template <typename A, typename B> bool compareNotEqual(const A &a, const B &b) { return Compare<A,B>::notEqual(a,b); } |
903 |
| -template <typename A, typename B> bool compareLess(const A &a, const B &b) { return Compare<A,B>::less(a,b); } |
904 |
| -template <typename A, typename B> bool compareMore(const A &a, const B &b) { return Compare<A,B>::more(a,b); } |
905 |
| -template <typename A, typename B> bool compareLessOrEqual(const A &a, const B &b) { return Compare<A,B>::lessOrEqual(a,b); } |
906 |
| -template <typename A, typename B> bool compareMoreOrEqual(const A &a, const B &b) { return Compare<A,B>::moreOrEqual(a,b); } |
| 901 | + |
| 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); } |
| 910 | + |
| 911 | +// super general comparisons |
| 912 | +template <typename A, typename B> int compareBetween( const A &a, const B &b) { return Compare<A,B>::between( a, b); } |
| 913 | +template <typename A, typename B> bool compareEqual( const A &a, const B &b) { return Compare<A,B>::equal( a, b); } |
| 914 | +template <typename A, typename B> bool compareNotEqual( const A &a, const B &b) { return Compare<A,B>::notEqual( a, b); } |
| 915 | +template <typename A, typename B> bool compareLess( const A &a, const B &b) { return Compare<A,B>::less( a, b); } |
| 916 | +template <typename A, typename B> bool compareMore( const A &a, const B &b) { return Compare<A,B>::more( a, b); } |
| 917 | +template <typename A, typename B> bool compareLessOrEqual(const A &a, const B &b) { return Compare<A,B>::lessOrEqual(a, b); } |
| 918 | +template <typename A, typename B> bool compareMoreOrEqual(const A &a, const B &b) { return Compare<A,B>::moreOrEqual(a, b); } |
0 commit comments