OSDN Git Service

/cp
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / template / member5.C
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.
5
6 namespace N1 {
7
8 struct S { 
9     template< typename B, typename A > void foo(); 
10     template< typename A >             void foo(); 
11 }; 
12  
13 template< typename A >             void S::foo() {} 
14 template< typename B, typename A > void S::foo() {} 
15  
16 template void S::foo<void> (); 
17 template void S::foo<void,void> (); 
18
19 }
20
21 namespace N2 {
22
23 struct S { 
24   template< typename _A > void foo(); 
25   template< int _i >      void foo(); 
26 }; 
27
28 template< typename _A > void S::foo() {} 
29
30 template void S::foo< 0 >();    // { dg-error "no definition available" "no def" }
31                                 // { dg-message "instantiated" "instantiated" { target *-*-* } 30 }
32
33 }