Ich habe Funktionen, die prinzipiell generische Listen erstellen, mit denen weitergearbeitet können werden soll.
Intuitiv würde man schreiben:
function foo(): TList<MyClass>
Daraus ergibt sich natürlich das altbekannte Problem: wer gibt diese Liste wann wieder frei? Ist dies nun vertretbar, das dem Benutzer der Library zu überlassen?
Oder sollte man doch besser nen Iterator/Enumerator (was ist eigentlich der Unterschied?) zurückgeben, aber wie würde das konkret funktionieren, im Hinblick auf die generische Liste?
Delphi-Quellcode:
function foo(): ?
var
List: TList<MyClass>;
begin
List := TList<MyClass>.Create;
...
Result := ?
end;
Selbst wenn man den Fragezeichenteil korrekt ergänzen könnte
hätte man aber doch immernoch das selbe "Speicherleck"?! Mir fehlt grade die zündende Idee...