g++ och templates
Filer med templates som inte används genererar ingen objektkod för mallen, så när man försöker länka ihop binären så får man något felmeddelande i stil med:
.
Main.o(.text+0x32a): undefined reference to `Database::Add(Person &)'
Main.o: In function `PersonDatabase::~PersonDatabase(void)':
.
Lösningen är att tvinga g++ att generera objektkod genom att sätta in en tillämpning av mallen i filen där mallen är definierad. I fallet ovan lägger man till följande i slutet på Database.cc:
#include "Person.hh"
template class Database<Person>;
Tor-Åke Fransson
Last modified: Thu Feb 26 23:36:53 MET 1998