Полтора месяца прошло с появления FPC 2.2.4. С паскалем я, к сожалению, все это время дела не имел (использовал CodeGear Delphi 2009), а вот сегодня наконец пришлось.
Полный лог изменений в FPC 2.2.4.
Самое значимое - это полноценная поддержка generic'ов. А этого я ждал долго :) Теоретически, они были и раньше, но по факту при попытке специализации какого-то дженерика вываливалась ошибка "202 runtime error".
В скором времени перепишу паскалевский синтаксис в виме, чтобы слова generic и specialize подсвечивались.
Код с тестовым примером:
generic TList<TItem> = class(TObject)
var private
FItems: Array Of TItem;
public
procedure SetLength(Len: Integer); inline;
function High: Integer; inline;
function Length: Integer; inline;
procedure Add(Item: TItem);
procedure Del(Item: TItem; All: Boolean = True);
function Find(Item: TItem): Integer;
function GetItem(Index: Integer): TItem; inline;
procedure SetItem(Index: Integer; Item: TItem); inline;
property Items[Index: Integer]: TItem read GetItem write SetItem; default;
end;
TListOfInteger = specialize TList<Integer>;
TListOfString = specialize TList<String>;
Комментариев нет:
Отправить комментарий