[PR c++/84702] ICE with default tmpl arg of overload set
[official-gcc.git] / gcc / testsuite / g++.dg / template / member5.C
blobdbce9a84b714112134119e96e2b31c3364084a77
1 // { dg-do compile }
2 // Contributed by: <fasbjx at free dot fr>
3 // PR c++/14389: Disambiguate overloaded member templates which differ only
4 //  in the template argument list.
6 namespace N1 {
8 struct S { 
9     template< typename B, typename A > void foo(); 
10     template< typename A >             void foo(); 
11 }; 
13 template< typename A >             void S::foo() {} 
14 template< typename B, typename A > void S::foo() {} 
16 template void S::foo<void> (); 
17 template void S::foo<void,void> (); 
21 namespace N2 {
23 struct S { 
24   template< typename _A > void foo(); 
25   template< int _i >      void foo(); 
26 }; 
28 template< typename _A > void S::foo() {} 
30 template void S::foo< 0 >();    // { dg-error "no definition available" "no def" }
31                                 // { dg-message "required" "instantiated" { target *-*-* } .-1 }