template <class T> struct A {
  template <class U> void f(U);
};

template <int i> struct B { };

template <class T> template <class U>
void A<T>::f (U)
{
  enum { foo };
  B<foo> b;
}

int main ()
{
  A<char> a;
  a.f (42);
}
