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)


Anmelden zum Antworten