// { dg-do run } | |
// GROUPS passed overloading | |
extern "C" int printf (const char *, ...); | |
struct NoName { | |
int first; | |
int second; | |
}; | |
class Casted { | |
public: | |
NoName x; | |
double y; | |
Casted ( int _x , double _y ): y(_y) | |
{ | |
x.first = _x; | |
x.second = _x*2; | |
} | |
operator NoName() const { return x; } | |
operator double() const { return y; } | |
}; | |
int main() | |
{ | |
Casted c(10,12.34); | |
NoName x; | |
double y; | |
x = c; | |
y = c; | |
if (x.first == 10 && x.second == 20 && y == 12.34) | |
printf ("PASS\n"); | |
else | |
{ printf ("FAIL\n"); return 1; } | |
} |