1 template<typename T> 2 struct A { 3 template<typename L> struct SubA { }; 4 fA5 template<typename T1,typename L> void f(T1 & t1, SubA<L> & t2) { } gA6 template<typename U> void g(SubA<U> & suba) { } hA7 template<typename U> void h(SubA<U> & suba) { } 8 }; 9 main(void)10int main(void) { 11 int i; 12 A<int> a; 13 A<int>::SubA<int> suba; 14 15 a.f(i,suba); 16 a.g(suba); 17 a.h(suba); 18 } 19 20