1 // { dg-options "-fno-pretty-templates" } 2 3 template <class T, int N=0, int X=1> 4 struct A 5 { 6 struct AN; 7 }; 8 foo(void)9void foo(void) 10 { 11 A<void> a = 0; // { dg-error "A<void, 0, 1>" } 12 } 13 14 template <class T> T f(T); // { dg-message "int f<int>.int." } 15 template <class T> T f(T, int = 0); // { dg-message "" } 16 17 template <class T> 18 struct B 19 { 20 typedef typename T::AN BN; 21 22 BN f(); // { dg-message "AN" } 23 BN f(int = 0); // { dg-message "" } 24 }; 25 main()26int main() 27 { 28 f(1); // { dg-error "" } 29 B<A<int> >().f(); // { dg-error "" } 30 } 31