*** empty log message ***
[lilypond/patrick.git] / flower / include / compare.hh
bloba0d7ed98fa97cd122214f02b05d1b0bd2072a0b2
1 /*
2 flowerlib
4 (c) 1996--2005 Han-Wen Nienhuys
5 */
6 #ifndef COMPARE_HH
7 #define COMPARE_HH
9 #define ONE_OPERATOR(type, function, op) \
10 inline bool \
11 operator op (type t1, type t2) \
12 { \
13 return function (t1, t2) op 0; \
16 /** handy notations for a signed comparison.
17 make the operators{<,<=,==,>=,>} and the MAX and MIN of two.
18 Please fill a & in the type argument if necessary.
20 #define TEMPLATE_INSTANTIATE_COMPARE(type, function, prefix) \
21 prefix ONE_OPERATOR (type, function, >) \
22 prefix ONE_OPERATOR (type, function, >=) \
23 prefix ONE_OPERATOR (type, function, ==) \
24 prefix ONE_OPERATOR (type, function, !=) \
25 prefix ONE_OPERATOR (type, function, <) \
26 prefix ONE_OPERATOR (type, function, <=) \
27 prefix inline type max (type t1, type t2) { return (t1 > t2) ? t1 : t2; } \
28 prefix inline type min (type t1, type t2) { return (t1 < t2) ? t1 : t2; } \
30 prefix bool operator < (type t1, type t2) /* stupid fix to allow ; */
32 #define INSTANTIATE_COMPARE(type, func) TEMPLATE_INSTANTIATE_COMPARE (type, func,)
34 #endif