1// DR 391 says that we always bind a reference to the base subobject; it is 2// incorrect to call the A copy constructor to initialize the parameter of 3// f. 4 5int fail; 6 7struct A { 8 A() { } 9 A(const A&) { fail = 1; } 10}; 11struct B : public A { }; 12struct X { 13 operator B() { return B(); } 14}; 15X x; 16 17void f (const A&) { } 18 19int main() 20{ 21 f(x); 22 return fail; 23} 24