Templates in .cpp definieren
-
Hallo!
Ich bekomme es einfach nicht hin ein Template in .h und .cpp aufzuteilen, wie das in C++ üblich ist.
Ich habe in meiner Headerdatei folgende Deklaration:
template<class T> class TL1{ public: T inst; T func(); };
Und in der cpp:
T TL1<class T>::func(){ return inst; }
Aber der Compiler beschwert sich dass er in der cpp das T nicht kennt. Wenn ich das <class T> in der cpp weglasse kommt ein anderer komischer Fehler.
Wie ist denn die richtige Syntax dafür?
Danke!
mfg
-
Hat sich erledigt, habe es hinbekommen.
mfg
-
Nochmal für alle anderen: richtig ist:
template<class T> T TL1<T>::func() {...}
(und noch richtiger ist es, diese Definition in den Header zu packen - sonst bekommst du ganz schnell Probleme, wenn der Linker die richtige Version von "TL1" nicht findet)