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