// DR 657 // Test that a return or parameter type with abstract class type causes a // deduction failure. struct A { A(); A(int); virtual void f() = 0; }; template T declval(); template int declval(...); template void arg(T); template int arg(...); int main() { int i = declval(); i = arg(1); }