1template<typename T> 2struct A { 3 template<typename L> struct SubA { }; 4 5 template<typename T1,typename L> void f(T1 & t1, SubA<L> & t2) { } 6 template<typename U> void g(SubA<U> & suba) { } 7 template<typename U> void h(SubA<U> & suba) { } 8}; 9 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