X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Fcompare.hh;h=855c99eaa07efd17dc292ec3e9cbcd02b3bac48d;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=d956c7157c59a845de8e11dd3781d3953745f4b5;hpb=91e7cbaa6e54e004365d28e0f10c9362a7f13320;p=lilypond.git diff --git a/flower/include/compare.hh b/flower/include/compare.hh index d956c7157c..855c99eaa0 100644 --- a/flower/include/compare.hh +++ b/flower/include/compare.hh @@ -1,55 +1,37 @@ /* flowerlib - (c) 1996--2005 Han-Wen Nienhuys - */ + (c) 1996--2008 Han-Wen Nienhuys +*/ #ifndef COMPARE_HH #define COMPARE_HH -#define ONE_OPERATOR(type, function, op) \ -inline bool \ -operator op (type t1, type t2) {\ - return function (t1, t2) op 0;\ -}\ +#define ONE_OPERATOR(type, function, op) \ + inline bool \ + operator op (type t1, type t2) \ + { \ + return function (t1, t2) op 0; \ + } + +/** handy notations for a signed comparison. + make the operators{<,<=,==,>=,>} and the MAX and MIN of two. + Please fill a & in the type argument if necessary. +*/ +#define TEMPLATE_INSTANTIATE_COMPARE(type, function, prefix) \ + prefix ONE_OPERATOR (type, function, >) \ + prefix ONE_OPERATOR (type, function, >=) \ + prefix ONE_OPERATOR (type, function, ==) \ + prefix ONE_OPERATOR (type, function, !=) \ + prefix ONE_OPERATOR (type, function, <) \ + prefix ONE_OPERATOR (type, function, <=) \ + /* namespace std { */ \ + prefix inline type max (type t1, type t2) { return (t1 > t2) ? t1 : t2; } \ + prefix inline type min (type t1, type t2) { return (t1 < t2) ? t1 : t2; } \ + /* } */ \ + /* stupid fix to allow ; */ \ + prefix bool operator < (type t1, type t2) + +#define INSTANTIATE_COMPARE(type, func) TEMPLATE_INSTANTIATE_COMPARE (type, func,) -#define GPP_MINMAX_OPERATOR(type, op, opp) \ -inline type \ -operator op (type t1, type t2)\ -{\ - return (t1 opp t2) ? t1 : t2;\ -}\ - - -#if defined (__GNUG__) && ! defined (__STRICT_ANSI__) -#define GPP_MINMAX(type, prefix)\ - prefix GPP_MINMAX_OPERATOR (type, ?, >) -#else -#define GPP_MINMAX(type, prefix) #endif -/** handy notations for a signed comparison. - make the operators{<,<=,==,>=,>} and the MAX and MIN of two. - Please fill a & in the type argument if necessary. - */ -#define TEMPLATE_INSTANTIATE_COMPARE(type, function, prefix) \ -prefix ONE_OPERATOR (type, function, >)\ -prefix ONE_OPERATOR (type, function, >=)\ -prefix ONE_OPERATOR (type, function, ==)\ -prefix ONE_OPERATOR (type, function, !=)\ -prefix ONE_OPERATOR (type, function, <)\ -prefix ONE_OPERATOR (type, function, <=)\ -GPP_MINMAX (type, prefix)\ -prefix inline type max (type t1, type t2) { return (t1 > t2)? t1 : t2; }\ -prefix inline type min (type t1, type t2) { return (t1 < t2)? t1 : t2; }\ - \ -prefix bool operator< (type t1, type t2) /* stupid fix to allow ; */ - - - -#define INSTANTIATE_COMPARE(type, func) TEMPLATE_INSTANTIATE_COMPARE (type,func,) - - - -#endif -