B
Artchi schrieb:
Fakt ist, das auch bei Templates die Trennung Header und Implementierung gehandhabt werden sollte, so wie es auch Bjarne Stroustrup empfiehlt. Und EIGENTLICH ist das das auch bei Templates möglich!
Eigentlich? Ja, denn leider unterstützt kein Compiler bisher dieses Feature, obwohl es im ISO C++ Standard drin steht. Um Templates in Header und Implementierung zu trennen, gibt es das Schlüsselwort "export". Kann aber bisher keiner.
Ganz so einfach ist es nun auch nicht. Der Standard ist kein göttliches Gesetz, im Standardkommitee sitzen u.a. auch Compilerhersteller, also genau die Leute, die es jetzt nicht schaffen, export zu implementieren. Normalerweise wird ein Feature erst von einem entwickelt und getestet, und dann wird darüber entschieden, ob und wie es standardisiert werden soll (siehe z.b. den Werdegang der STL). Bei export ist das nicht geschehen, da hat man sich am Reißbrett was ausgedacht und irgendwie definiert, was letztlich nicht bzw. nur mit sehr sehr hohem Aufwand machbar war. Und schon seit einiger Zeit hat sich herausgestellt, dass export auch theoretisch nicht der große Wurf war (siehe Herb Sutters Artikel "Export Restrictions" Teil 1 und 2).