1 // Copyright (C) 2001 Free Software Foundation
2 // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3 // { dg-do compile }
4 
5 template <class U> struct A
6 {
7 	template <class T> class B {}; // { dg-message "operator=|no known conversion" }
8 };
9 
f()10 template <template <class> class TT> void f()
11 {
12 	TT<int> y;
13 	y = 0; // { dg-error "no match" }
14 }
15 
16 template <class T> struct C
17 {
gC18 	void g() { f<A<T>::template B>(); } // { dg-message "required" }
19 };
20 
main()21 int main()
22 {
23 	C<int> c;
24 	c.g(); // { dg-message "required" }
25 }
26