Hi, ich wollte schon immer mal nen Performancevergleich Delphi <-> Lazarus machen und jetzt wo Lazarus 1.~ raus ist hab ich mich mal hingesetzt und ein größeres Projekt portiert.
Iwann hats dann auch endlich kompiliert ... ich die inline direktive angeschaltet ... bäm fpc heult rum ...
Alles umsonst? Oder kennt jemand einen Trick wie Lazarus das frisst?
Delphi-Quellcode:
program inlinetest;
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
type
TClassA = class
private
FTmp: Integer;
public
function IsOne: Boolean; inline;
procedure SetToZero;
end;
TClassB = class(TClassA)
public
function IsOne: Boolean; inline;
end;
{ TClassA }
function TClassA.IsOne: Boolean;
begin
Result := FTmp = 1;
end;
procedure TClassA.SetToZero;
begin
FTmp := 0;
end;
{ TClassB }
function TClassB.IsOne: Boolean;
begin
result := inherited IsOne;
end;
var
abcde: TClassB;
begin
abcde := TClassB.Create;
if abcde.IsOne then // in Lazarus Kompilerfehler: inlinetest.dpr(47,11) Error: Illegal expression
abcde.SetToZero;
abcde.Free;
end.