Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

08.02.2008, 18:34

Zitat von »"David_pb"«

Zitat von »"drakon"«

Hmm, habs gerade gelesen in der VC - Hilfe, konnte es aber nicht richtig glauben.

Warum den? - Soweit ich mich erinnern kann taucht eben export noch recht viel in dieser VC - Hilfe auf.


Aber kein Template-Export. Warum das kaum ein Compiler unterstützt? Vermutlich weil es kein Compilerbauer für notwendig gehalten hat den Aufwand für das Feature in kauf zu nehmen! :) Geht ja schließlich auch ohne.

Das wird nicht unterstützt, weil dies die compiler/linker trennung über den haufen werfen würde.

Die Compiler funktionieren momentan in etwa so:

zuerst wird jede Übersetzungseinheit einzeln Compiliert, jede funktion wird also übersetzt, und die Ergebnisse in die Objekt dateien geschrieben.
Danach wird der linker aufgerufen, der diese dateien zusammenfasst. dabei werden referenzen auf funktionen in den Objektdateien durch die echten addressen ersetzt.

Mit export ergibt sich nun ein problem. Wenn der Compiler ein export-template findet, weis er zu dem zeitpunkt meistens nicht, welche Spezialisierungen benötigt werden, und somit kann er nichts in die Objektdatei schreiben. Dies weis er erst, wenn die anderen Objektdateien compiliert wurden, und der linker festgestellt hat, welche spezialisierungen der Funktion gebraucht werden. Zu dem zeitpunkt ist es aber zu spät, der Compiler hat seinen job getan. Wir brauchen also eine Art COmpiler->Linker loop, der solange durchläuft, bis alle template referenzen korrekt aufgelöst wurden. Und das würde die architektur aller Compiler übern haufen werfen, der Comeau zb wurde extra für export Designed.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

09.02.2008, 00:56

Zitat von »"otze"«

...der Comeau zb wurde extra für export Designed.


Danke für die Aufklärung, aber ich weiß wie ein Compiler "in etwa" funktioniert. Der Comeau zeigt ja aber, dass das Sprachfeature theoretisch möglich wäre. Ob ein Compilerbauer seinen Compiler danach designed und Template-Export unterstützt, oder eben nicht, liegt ganz in seinem eigenen Befinden.
@D13_Dreinig