export für templates
-
Warum ist export für templates so schwierig zu implementieren, dass es nur der Comeau unterstützt?
-
Auf der Comeau-Homepage gibts einen Erfahrungsbericht zu dem Thema. Schau da am besten rein, die Comeau-Leute können das besser erklären, als hier jemand.
Man kann für das Scheitern dieses Features aber einen Grund nennen: es wurde beschlossen und verabschiedet, ohne das es jemand vorher ausprobiert hat.

-
-
Interessanter Bericht. Ich finde die Thematik sowieso interessant, weil es in .NET ja gelungen ist, sowas in der Art zu implementieren. Mir ist klar, dass zwischen den .NET-Generics und C+-Templates, sowie zwischen dem .NET-Zwischencode und C++-
export-Objektcode fundamentale Unterschiede bestehen. Der Zweck ist aber letztendlich sehr ähnlich: .NET ermöglicht vorkompilierte Templates.Wenn ich den Bericht richtig verstanden habe, dann ist das größte Problem an
exportdas Einhalten der ODR (bzw. das Verwalten der Definitionen). Dieses Problem besteht unter .NET gar nicht. Ich vermute mal, dass das wahre Problem hierbei die (partiellen) Template-Spezialisierungen sind, welche so unter .NET komplett fehlen. Hat da jemand mehr Ahnung und könnte das kommentieren? Wo versteckt sich der für dieexport-Implementierung relevante Unterschied?
-
Schaut mal in den Template-Artikel von GPC
http://www.c-plusplus.net/forum/viewtopic-var-t-is-128361-and-start-is-0.html
Unter Punkt 7 hat er einiges zum Thema "export" und deren Umsetzungsfallen geschrieben...