Witam, jak wielu przede mna, mam problem z linkowaniem szablonow
Mam taki oto prosty, przykladowy programik zlozony z dwoch modulow :
//plik pasja.h
template<class param>
class pasja
{
private:
char* nazwa;
param jaki_opus;
public:
pasja(char* na, param op);
};
//plik pasja.cpp
#include "pasja.h"
template<class param>
pasja<param>::pasja(char* na, param op) : nazwa(na)
{
jaki_opus = op;
cout<<"To ja, konstruktor " << nazwa << endl;
}
#include "pasja.h"
int main(int argc, char* argv[])
{
pasja<int> muzyk("Sw. Mateusza", 37);
}
Moduly kompiluja sie poprawnie, jednak nie chca sie linkowac. Dostaje komunikat :
[Linker Error] Error: Unresolved external 'pasja<int>::~pasja<int>()' referenced from C:\USERS\DAWID\DOCUMENTS\BORLAND STUDIO PROJECTS\STR 118\DEBUG_BUILD\UNIT1.OBJ
Uzywam srodowiska Turbo C++. Linker ustawiony jest nastepujaco :
Generate definitions for all templates instances and merge duplicates.
Wiec tutaj wszystko powinno byc wporzadku. Gdzie zatem tkwi blad? Z góry dziekuje za pomoc ;)