17 Template1( const Template1<Y>& ) {}
26 Template2( const Template1<Y>& ) {}
32 typedef Argument1 type;
36 void foo( T, Template1<typename make_type<T>::type> )
41 void foo( T, Template2<typename make_type<T>::type> )
47 Template1<Argument2> t;
49 foo( a, t ); // { dg-error "ambiguous" }