// { dg-do assemble } | |
// Origin: Neil Booth <neilb@earthling.net> from bug #27. | |
struct A{}; | |
struct B:A{}; | |
struct C:B{}; | |
struct CX | |
{ | |
C c; | |
operator C&(){return c;} | |
}; | |
// viable functions for call below | |
void f(A&); | |
void f(B&); | |
int main() | |
{ | |
CX cx; | |
C c; | |
f(c); // the standard conversion to B& is better than to A& | |
f(cx); // after user defined conversion to C& | |
// the standard conversion to B& is better than to A& | |
} |