PR c++/81917 - ICE with void_t and partial specialization.
[official-gcc.git] / gcc / testsuite / g++.dg / template / pr54987.C
blob773f023e0a414729850418b20f65b8c426755866
1 // PR c++/54987
3 struct Argument1
5 };
7 struct Argument2
9 };
11 template<typename T>
12 struct Template1
14   Template1() {}
16   template<typename Y>
17   Template1( const Template1<Y>& ) {}
20 template<typename T>
21 struct Template2
23   Template2() {}
25   template<typename Y>
26   Template2( const Template1<Y>& ) {}
29 template <typename T>
30 struct make_type
32   typedef Argument1 type;
35 template<typename T>
36 void foo( T, Template1<typename make_type<T>::type> )
40 template<typename T>
41 void foo( T, Template2<typename make_type<T>::type> )
45 int main()
47   Template1<Argument2> t;
48   Argument1 a;
49   foo( a, t );  // { dg-error "ambiguous" }
50   return 0;