// { dg-do compile } // Origin: Martin von Loewis // PR c++/157: Incorrect type/template decision in function parameter. template class auto_ptr {}; template class counted_ptr { public: counted_ptr(::auto_ptr<_Tp>& __a); // { dg-error "candidate" } ::auto_ptr<_Tp> auto_ptr(); }; template inline counted_ptr<_Tp>::counted_ptr(class auto_ptr& __a) // { dg-error "required|not match|template" } { } template inline class auto_ptr<_Tp> counted_ptr<_Tp>::auto_ptr() { }