1 // PR c++/70468
2 // { dg-do compile { target c++11 } }
3 // { dg-additional-options -w }
4 
5 struct S {};
6 
7 template < typename = S >
8 class A
9 {
10 public:
A()11   A () : f0 (), f1 () {}	// { dg-error "" }
12 
13 private:
14   typedef A<> f0;
15   int f1;
16 };
17 
18 template < typename = S, typename = S >
19 class B
20 {
21 };
22 
23 template < typename T1, typename T2 >
24 B < T1, T2 > &operator<< (B < T1, T2 >&, const int)
25 {
26   A<> ();
27 }
28 
29 template
30 B < S, S > &operator<< (B < S, S >&, const int);
31