1extern "C" int printf (const char *, ...);
2template <class T> T max (const T&x, const T&y)
3{
4  return (x>y)?x:y;
5}
6int min (const float&, const float&);
7int min (const int& i1, const int& i2) {
8  return (i1 < i2) ? i1 : i2;
9}
10
11class complex
12{
13  double re, im;
14 public:
15  complex (double r, double i=0) { re = r; im = i; }
16  friend int operator > (const complex& x, const complex &y) { return 0; }
17  void print () { }
18};
19
20int main ()
21{
22  complex c1 (1, 0);
23  complex c2 (2, 0);
24
25  int j = max (1, 37);
26  complex m1 = max (c1, c2);
27  m1.print ();
28  printf ("j=%d\n", j);
29  return 0;
30}
31