template<class A>
struct Foo
{
  template<class B>
  struct Bar
  {
  };
};

このBarだけを特殊化するのって、GCCでは

template<>template<>
struct Foo<int>::Bar<int>

って書かなきゃならないんだね。
VC++7.1では

template<>
struct Foo<int>::Bar<int>

で通るんだけど、これはバグなのかな?