Вы пытаетесь сделать явную специализацию template<typename T> foo(T)
, где T = int.
Вы действительно этого хотели?
template<typename T> foo::foo(T) {
}
--- EDIT --- *
Просто чтобы прояснить: «явная специализация» является допустимой в C ++, но, по-видимому, ваш компилятор не поддерживает ее (в любом случае, для отдельных методов, может быть, для целых классов?).