1 2 3 4 5 6 7 8 9 10 11 12
struct Base { }; struct Derived : public Base { }; struct Choose { operator Base&(); operator Derived&(); }; void f() { Choose c; Base& ref = c; }