Salve a tutti,
sto cercando di realizzare una funzione template membro di una classe, che prende in input qualsiasi tipo di dato su cui è implementato l'operatore "<<" e stampi a video.
Ecco il codice del file header
codice:
//Debugger.h
namespace debugger
{
. . .
class Debugger
{
public:
. . .
template<typename T> void Debugger::scrivi(T m );
. . .
};
}
e dell'implementazione
codice:
using namespace debugger;
template<typename T> void Debugger::scrivi(T m )
{
cout<<m;
}
Per richiamare la funzione faccio così:
codice:
Debugger d();
d.scrivi<int>(10);
d.scrivi("ciao");
Ottengo un errore in fase di link per ogni chiamata alla funzione template
main.cpp||undefined reference to `void debugger:: Debugger::scrivi<int>(int)'|
main.cpp||undefined reference to `void debugger:: Debugger::scrivi<char const*>(char const*)'|
Non riesco a capire dov'è il problema.
Ringrazio anticipatamente