summaryrefslogtreecommitdiff
path: root/flower/compare.hh
blob: 9f9d4e5906aa062cf61ad087a8938a981e9fdeea (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
  flowerlib

  (c) 1996 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; }	

/// handy notations for a signed comparison
#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, <=)\
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 ; */
     /**
    make the operators{<,<=,==,>=,>} and the MAX and MIN of two.
    Please fill a & in the type argument if necessary.    
    */


    
#define instantiate_compare(type, func) template_instantiate_compare(type,func, )
     

     
#endif