La compilación del siguiente código (sobrecarga de 'operator<<' con uso de plantillas), NO da errores en BC++3.0 y SI los da en BC++5.0: 'Unresolved external'.
Implementando 'operator<<' dentro de la clase, va bien. ¿Alguien puede ayudarme a detectar donde está el fallo?. Gracias.preglero@yahoo.es
#include <iostream>
using namespace std;
template <class T> class Pieza
{
private:
T codigo;
char * desc;
public:
Pieza(T c, char * v);
~Pieza();
friend ostream & operator<<(ostream &os, const Pieza<T> &cv);
};
template <class T> ostream & operator<< (ostream &os, const Pieza<T> &cv) {
os << "(" << cv.codigo << "," << cv.desc << ")";
return os;
}
template <class T> Pieza<T>::Pieza(T c, char * v): codigo(c){
strcpy(desc = new char[strlen(v)+1], v);
}
template <class T> Pieza<T>::~Pieza() {delete [] desc;}
void main()
{
Pieza<int> cv1(2,"tp");
cout << cv1;
}