Daniel Thoma: C++ als CGI - Anfänge und Sicherheitsaspekte

Beitrag lesen

Hallo schneemann,

Sind Templates in C++ nicht so was ähnliches wie die Generics, die mit Java 1.5 hinzugekommen sind?

Die Idee ist die gleiche ja. Allerdings hat Java ein paar Einschränkungen (in C++ gehen meines Wissens so Dinge wie class Blub<T> extends T also ein Parametrisieren der Elternklasse) und auch Features, die C++ nicht hat (z.B. Wildcard-Typen wie List<? extends Blub>).

Außerdem sind Java-Generics ganz anders implementiert. Bei C++ wird für jede "Instanz" eines Templates eine entsprechende Klasse erzeugt, bei Java nicht. Die Typen werden nur zur Kompilezeit geprüft und anschliesen werden entsprechend Casts eingefügt. Die Information über Typ-Parameter ist im Bytecode nicht mehr enthalten.

Grüße

Daniel