extern "C" void abort();

template <class T> 
class A
{
 public:
  static int foo(int);
};

template <>
int A<int>::foo(int i)
{
  return i;
}


int main()
{
  if (A<int>::foo(22) != 22)
    abort();
}
