1*c87b03e5Sespie // GROUPS passed overloading
2*c87b03e5Sespie extern "C" int printf (const char *, ...);
3*c87b03e5Sespie 
4*c87b03e5Sespie struct NoName {
5*c87b03e5Sespie 
6*c87b03e5Sespie         int first;
7*c87b03e5Sespie         int second;
8*c87b03e5Sespie };
9*c87b03e5Sespie 
10*c87b03e5Sespie class Casted {
11*c87b03e5Sespie 
12*c87b03e5Sespie   public:
13*c87b03e5Sespie 
14*c87b03e5Sespie         NoName  x;
15*c87b03e5Sespie         double  y;
16*c87b03e5Sespie 
Casted(int _x,double _y)17*c87b03e5Sespie         Casted ( int _x , double _y ): y(_y)
18*c87b03e5Sespie         {
19*c87b03e5Sespie                 x.first = _x;
20*c87b03e5Sespie                 x.second = _x*2;
21*c87b03e5Sespie         }
22*c87b03e5Sespie 
NoName()23*c87b03e5Sespie         operator NoName() const { return x; }
24*c87b03e5Sespie         operator double() const { return y; }
25*c87b03e5Sespie };
26*c87b03e5Sespie 
main()27*c87b03e5Sespie int main()
28*c87b03e5Sespie {
29*c87b03e5Sespie         Casted c(10,12.34);
30*c87b03e5Sespie 
31*c87b03e5Sespie         NoName x;
32*c87b03e5Sespie         double y;
33*c87b03e5Sespie 
34*c87b03e5Sespie         x = c;
35*c87b03e5Sespie         y = c;
36*c87b03e5Sespie 
37*c87b03e5Sespie 	if (x.first == 10 && x.second == 20 && y == 12.34)
38*c87b03e5Sespie 	  printf ("PASS\n");
39*c87b03e5Sespie 	else
40*c87b03e5Sespie 	  { printf ("FAIL\n"); return 1; }
41*c87b03e5Sespie }
42