1// Copyright (C) 2001 Free Software Foundation 2// Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3// { dg-do compile } 4 5struct A 6{ 7 template <class T> class B {}; 8}; 9 10template <template <class> class TT> struct X 11{ 12 TT<int> y; 13}; 14 15template <class T> struct X<T::template B> // { dg-error "previous" } 16{ 17 T z; 18}; 19 20template <class T> struct X<T::template B> // { dg-error "redefinition" } 21{ 22 T z; 23}; 24 25template <class T> struct C 26{ 27 X<T::template B> x; 28}; 29 30int main() 31{ 32 C<A> c; 33} 34