template funktion extern deklarierbar?
-
ich hab in nem file ne funktion drin:
template<typename T> bool prepare ( const T& t ) { //.. }die möchte ich in nem anderen file benutzen.
habs so probiert, die im anderen file zu deklarieren:template<typename T> extern bool prepare ( const T& t );die funktion wird aber nicht gefunden.
Verweis auf nicht aufgelöstes externes Symbol ""bool __cdecl prepare<wchar_t *>(wchar_t * const &)" (??$prepare@PA_W@@YA_NABQA_W@Z)" in Funktion "_WinMain@16"

-
Du musst Templates in Headern definieren (nicht nur deklarieren).
-
Ah! Supi, danke!
-
Der Standard sieht dafür das Schlüsselwort "export" statt "extern" vor. Das "export" hätte -- soweit ich weiß -- auch in alle Dateien reingemusst. "export" wird nur von so gut wie keinem Compiler unterstützt, weswegen der Rest der Welt Templates komplett in Header-Dateien definiert.
Mehr Infos Dazu --> Suchmaschine fragen. Vielleicht mit Begriffen wie
C++, template, compilation model, export, ...Gruß,
SP