template in c-Datei



  • Kann man die Implementation eines templates auch in einer C-Datei verstecken, so dass der Benutzer nur die Header-Datei sieht?

    Gruß, Tobias



  • Nein, kann man nicht. Es gibt theoretisch das Schlüsselwort export, was aber nur EDG-basierte Compiler unterstützen (d.h. eigentlich nur der Comeau).

    Aber selbst wenn Du diesen Compiler hättest, dann würdest Du erst merken welche Schwierigkeiten es mit sich bringt. Die Cpp-Datei, in der das Template deklariert ist, muss trotzdem noch für alle sichtbar sein und alles was davon abhängt, muss immernoch neu übersetzt werden. Zudem bringt dieses Schlüsselwort den Code dermaßen durcheinander, dass ich - selbst wenn ich den Comeau hätte - es niemals einsetzen würde.



  • ok, schade...

    danke!



  • Es gibt nen Trick: Schreib die Schnittstelle der Template-Klasse in den header, die Implementation in eine cpp Datei. Dann inkludierst du die cpp Datei in den Header rein, also umgekehrt wie sonst:

    // In der header datei:
    #include "sourcefile.cpp"
    

Anmelden zum Antworten