"When compiling in Delphi mode or Objfpc mode, the result identifier may be dropped. The
result can then be accessed through the standard Result symbol."
Сие расценивается мною как возможность использования перегрузки операторов в {$MODE DELPHI}
Но по странному стечению обстоятельств, данный код:
- Код: Выделить всё
program test;
{$MODE DELPHI} // без этой штуки перегрузка операторов работает, но отказаться от неё не в силах
type
TVec2f = object
x, y: Single;
end;
operator + (a, b: TVec2f) Result: TVec2f;
begin
Result.x := a.x + b.x;
Result.y := a.y + b.y;
end;
var
a, b: TVec2f;
begin
a.x := 0; a.y := 1;
b.x := 2; b.y := 3;
writeln((a + b).x);
end.
Вызывает ошибку компиляции:
test.dpr(10,10) Fatal: Syntax error, "=" expected but "+" found
Это такая недокументированная фитча? Как лечить?