LINUX.ORG.RU

[FPC] Вышла новая версия FreePascal 2.4.2

 


0

1

Что там понадобавляли для совместимости с дельфями - это любой ид... желающий может посмотреть на офсайте. Расскажу о том, о чем было скромно забыто :)

Плюс - починили специализацию дженериков. Теперь код вида

{$mode objfpc}
{$apptype console}
type
   generic T1<A> = class
   public
      x: A;
   end;
   generic T2<A, B> = class
   type public
      T1Alias = specialize T1<A>;
   var public
      x: T1Alias;
      y: B;
   end;
type
   T3 = specialize T2<integer, integer>;
var
   x: T3;
begin
   x := T3.Create;
end.
работает.

А раньше не работал.

МИНУС - сломали нахрен перегрузку методов :) И такой код теперь не работает:

{$mode objfpc}
{$H+}
unit WXCore;
interface

type
  generic WXList<A> = class
  public
  	constructor Create; overload;
    constructor Create(src: specialize WXList<A>); overload;
  	constructor Create(src: array of A); overload;
  end;

implementation

constructor WXList.Create; overload;
begin
end;
constructor WXList.Create(src: specialize WXList<A>); overload;
begin
end;
constructor WXList.Create(src: array of A); overload;
begin
end;

end.
А раньше работал.


Ответ на: комментарий от mv

> У мну критика и предложения всегда конструктивные.

врешь сцуко. ты даже мою собаку критиковал. вздорно
и не конструктивно.

idle ★★★★★
()
Ответ на: комментарий от anonymous

да хотя бы в 2.4.0

{$mode objfpc}
type
  generic WXList<A> = class
  public
     constructor Create; overload;
    constructor Create(src: specialize WXList<A>); overload;
     constructor Create(src: array of A); overload;
  end;

constructor WXList.Create; overload;
begin
end;
constructor WXList.Create(src: specialize WXList<A>); overload;
begin
end;
constructor WXList.Create(src: array of A); overload;
begin
end;

type ttt = specialize wxlist<integer>;
var a1, b1: ttt;
begin
    writeln('test');
    a1 := ttt.create;
    b1 := ttt.create(a1);
    b1.free;
    a1.free;
    writeln('test');
    readln;
end.
Мотай на ус.

yaws
() автор топика
Ответ на: комментарий от idle
врешь сцуко. ты даже мою собаку критиковал. вздорно
и не конструктивно.

Собака - это что-то большое и агрессивное. А твоё исчадие, которое размером меньше средней кошки, сидящее в тёплой сумочке и до сыкотни трясущееся от страха, собакой назвать нельзя ;)

mv ★★★★★
()
Ответ на: комментарий от mv

> трясущееся от страха

дурашка. это она от злости тряслась, на тебя глядя.

ничо, ничо. вот она подрастет, приедешь ты еще к нам.

idle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.