// DR 391 says that we always bind a reference to the base subobject; it is | |
// incorrect to call the A copy constructor to initialize the parameter of | |
// f. | |
int fail; | |
struct A { | |
A() { } | |
A(const A&) { fail = 1; } | |
}; | |
struct B : public A { }; | |
struct X { | |
operator B() { return B(); } | |
}; | |
X x; | |
void f (const A&) { } | |
int main() | |
{ | |
f(x); | |
return fail; | |
} |