template typedef
-
otze schrieb:
meistens geht auch [...]
Und meistens ist das ein schmutziger Hack, den die paar Zeichen, die man dadurch weniger tippen muss, nicht rechtfertigen.
-
Ethon schrieb:
krümelkacker schrieb:
Ich habe gehört, dass das Clang schon kann.
Nicht laut dem hier: http://wiki.apache.org/stdcxx/C++0xCompilerSupport
Dieser Seite schenke in, was Clang angeht, weniger vertrauen als der hier:
http://clang.llvm.org/cxx_status.html

-
Diesen Hack nutzt QT aber auch ständig. Nämlich, wenn eine Klasse außerhalb dessen auch im Namespace landen soll. Dort gibt es aber keine Klassentemplates, weswegen das eigentlich seltsam ist.
-
pumuckl schrieb:
otze schrieb:
meistens geht auch [...]
Und meistens ist das ein schmutziger Hack, den die paar Zeichen, die man dadurch weniger tippen muss, nicht rechtfertigen.
Ja. Hat aber den Vorteil, dass es an vielen Stellen zu lesbareren Compilerfehlermeldungen führt.
-
Ach Compilerfehlermeldungen find ich überbewertet. Ich meine, wenn da ein 16-Zeiler an Templatemeldungen erscheint, geh ich ans Ende und bin auch sofort da.
-
otze schrieb:
Ja. Hat aber den Vorteil, dass es an vielen Stellen zu lesbareren Compilerfehlermeldungen führt.
Nö, es fügt nur eine zusätzliche Zeile in den Template-Fehlerstack ein. Und potentielle Fehler einzubauen, damit man Compilerfehler ein bisschen leichter entziffern kann ist nicht wirklich ein Grund, oder?

-
Aber was ist der Nachteil an diesem Hack?
-
Eisflamme schrieb:
Aber was ist der Nachteil an diesem Hack?
Dass Klassen wie z.B. std::vector nicht als Basisklassen vorgesehen sind und daher auch keine Rücksicht auf etwaige Kindklassen nehmen. Grundsätzlich sollte man Dinge nicht für etwas benutzen, wofür sie nicht vorgesehen sind, da es sonst eben unvorhersehbare Fehler geben kann. Und dann ist das ein klarer Fall von "selber Schuld" und man steht allein im Regen.
Selbst wenn das für die viele Klassentemplates ein sehr kleines Risiko ist, wozu es eingehen, wenn man gegenüber den Alternativen keinen nennenswerten Gewinn davon hat? Zumal solche Dinge zwar auf den ersten Blick die Schreibarbeit und meinetwegen auch das Lesen von Compilerfehlern erleichtern, andererseits aber die Wartbarkeit vermindern, weil der Kollege, der sich den Mist in 3 Monaten anschaut, sich erstmal am Kopf kratzt und sich fragt warum zum Henker man sowas unübliches gemacht hat und nach dem Clou dahinter sucht, der nicht existiert.
-
Okay, okay, bin überzeugt.

-
Mal davon abgesehen, muss man alle Konstruktoren neu schreiben und an die Basisklasse vorwärtsen.