Ho fatto una classe template lista e sto cercando di implementare l'overload dell'operatore <<, solo che mi da i seguenti errori (c++ builder)
codice:
[ILINK32 Error] Error: Unresolved external 'operator <<(std::basic_ostream<char, std::char_traits<char> >&, const Lista<int>&)' referenced from C:\USERS\VINCENZO\DESKTOP\LISTAOOP\DEBUG\MAIN_LL_OOP.OBJ
Questo è il codice: (solo delle parti significative, sennò diventa lungo...
codice:
template <class T>
class Lista{
	friend ostream& operator << (ostream&,const Lista<T>&);
	friend istream& operator >> (istream&,Lista<T>&);
	friend Lista operator +(const Lista&,const Lista&);  //non implementato ancora
public:
	Lista();  
	Lista(const Lista&); 
	~Lista();  

	bool inserisciInTesta(const T&);   
	bool inserisciInCoda(const T&);  
	bool inserisciPostoI(const T&,int i);   

	bool rimuoviInTesta(T&);  
	bool rimuoviInCoda(T&);   
	bool rimuoviPostoI(T&,int i); 

	bool getInfoPostoI(T&,int i) const;    

	int getDim() const; 

	bool operator ==(const Lista&);

	void reset();    
private:
	Nodo<T> *testa;
	int dim;
};

template <class T>
ostream& operator <<(ostream& out,const Lista<T>& x)
{
	T valore;
	for(int i=1;i<=x.getDim();i++)
	{
		x.getInfoPostoI(valore,i);
		out<<valore<<' ';
	}
	return out;
}
Ma cosa sbaglio???
Non riesco a capire perchè il linker non trova la funzione di overload dell'operatore <<