[ERLEDIGT] template



  • Hallo,

    ich habe gelesen das ein template in der Header Datei definiert werden sollte.
    Tatsächlich ist es bei mir so, wenn ich es in der CPP definiere und in der H nur deklariere, bekomme ich unresolved links?

    Wie könnte man das umgehen? Es sieht einfach zum *** aus.



  • Der Grund ist, dass der Compiler für die Instantiierung des Templates dessen kompletten Code kennen muss. Man umgeht das üblicherweise, indem man die Implementierung in eine .inl-Datei auslagert (oder .cpp oder was du willst) und diese am Ende der Headerdatei inkludiert.



  • ipsec schrieb:

    Der Grund ist, dass der Compiler für die Instantiierung des Templates dessen kompletten Code kennen muss. Man umgeht das üblicherweise, indem man die Implementierung in eine .inl-Datei auslagert (oder .cpp oder was du willst) und diese am Ende der Headerdatei inkludiert.

    Danke für die schnelle Antwort.



  • .cpp-Dateien würde ich grundsätzlich nie inkludieren, stattdessen kannst du .inl, .hpp, .h, .impl, .ipp oder sowas nehmen. Ich verwende immer .inl als Dateiendung für Template-Implementierungsdateien.


Anmelden zum Antworten