Ich persönlich find es gut, dass die Typüberprüfung bereits bei der Definiton des Generics stattfindet.
Mir wären C++ Templates lieber gewesen, dann müsste man nicht für jeden Typ einen eigenen Comparer nutzen, der allein durch den Aufruf der Compare-Funktion nicht an die Performance eines direkten "Wert1 = Wert2" herranreicht.
Weißt du, warum Embarcadero das nicht möchte?
Das kann ich nur erahnen:
- Der Debugger würde nicht den korrekten Datentyp für T anzeigen, da ein T=Integer mit einem T=TObject in manchen Funktionen zusammenfallen könnte. (Wobei das bei einem Release-Build nur Stacktraces betreffen würde)
- Wenn sie Arbeit in die Compiler-Optimierung stecken würden, müssten sie zugeben, dass ihre Aussage "size doesn't matter nowadays" falsch ist. (wie kommt man auf die Idee das solche Monster von APKs für Smartphones gut wären)
- Sie haben keine Zeit das einzubauen, sind ja mit ihren Mobile-Compilern beschäftigt (denen auch mal eine Performance-Optimierung gut tun würde)
- Mein Patch würde die Frage aufwerfen, wer für fehlerhaftes Verhalten beim Endkunden einstehen müsste. (das Totschlag Argument, wenn sie es nicht selbst entwickeln wollen)
Mein Patch funktioniert übrigens nur rudinemtär mit XE2
, weil ich "gestoppt wurde".