You are defining a templated operator overload, but not declaring it templated inside the class definition.

Change to:

Code:
template <typename TT>
friend Int<TT> operator +(const Int<TT>&, const Int<TT>&);