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 5 int fail; 6 7 struct A { AA8 A() { } AA9 A(const A&) { fail = 1; } 10 }; 11 struct B : public A { }; 12 struct X { BX13 operator B() { return B(); } 14 }; 15 X x; 16 f(const A &)17void f (const A&) { } 18 main()19int main() 20 { 21 f(x); 22 return fail; 23 } 24