Autor Thema: C++ templates in anderer Objektdatei  (Gelesen 6300 mal)

Krox

  • Beiträge: 38
    • Profil anzeigen
    • Coding42.de
Gespeichert
« am: 28. April 2006, 18:16 »
nach dem ich jetzt angefangen habe, mich mit templates zu beschäftigen, tuen sich noch einige Fragen auf: Wie wird das gemacht, wenn ich in einer (*.cpp) Datei ein (Klasse-)Template habe, das zu einer eigenen Objekt-Datei kompiliert wird, und ich in einem anderen eine Klasse damit erstelle..... das kann doch eigentlich nicht gehen beim zusammenlinken. Der linker versteht doch nichts von templates....   oder doch?

ich hoffe, ihr versteh was ich meine  :lol:

edit: bei inline-Funktionen müsste es doch das selbe Problem geben.. *kopfkratz*
21 ist nur die halbe Wahrheit

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 am: 28. April 2006, 18:28 »
hi,

würde irgendein Compiler den C++ Standard ganz umsetzten, dann könnte man templates exportieren, aber so nen Compiler gibts imho net (für kostenlos?). Naja, auf jeden Fall müssen inline Funktionen und Templates immer in den Headerdateien sein, sonst funktionierts net.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Krox

  • Beiträge: 38
    • Profil anzeigen
    • Coding42.de
Gespeichert
« Antwort #2 am: 28. April 2006, 18:46 »
nicht nur der compiler, auch der Linker und das Objekt-Datei-Format....
aber gut, dann mach ich es halt in in den Headerdateien....
dankeschön
21 ist nur die halbe Wahrheit

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 28. April 2006, 18:58 »
Hi,
Comeau's C++ Compiler ist der einzige Compiler der den kompletten Standard unterstützt. Also auch export von templates. Das Teil kostet wohl 50$, aber man kann es online testen!

 

Einloggen