Can someone please help?

I get this error

Undefined first referenced
symbol in file
tree<int>::tree(int, int, int, int const &)/var/tmp/ccP65mTL.o
ld: fatal: Symbol referencing errors. No output written to a.out

when I want to create an instant by using

const int x = 12;
tree<int> mytree(1,2,2,x)

Here's the code for the tree class constructor:

Code:
template <class T>
tree<T>::tree(int nr, int nc, int nl, const T& value)
   : data(nl)
{
   register int J, i, nNode;

   for (J = 0, nNode = nr; J < nl; J++, nNode *= nc)
   {
	  data[J].reserve(nNode);
	  back_insert_iterator< vector<T> > di(data[J]); // data iterator
 
	  for (i = 0; i < nNode; i++)
		 *di++ = value;
   }
}