On 01 Dec 2008, at 22:33, Martin Friebe wrote:

I suggested to have a rtl, that has overloaded functions for each string type.
of course that sounds easier than in fact it will be.

Florian pointed out a few issues, like overloading by result is not possible (yet?).

No, it is fundamentally impossible. First of all, because a Pascal compiler does not look at how the result of an expression is used while parsing the expression (so while evaluating a function call, the compiler has no idea what the "expected" result type is). That's simply how Pascal works.

And how could the compiler decide what to call here:

function f: longint;
begin
  result:=1;
end;

function f: string;
begin
  result:='s';
end;

begin
  writeln(f);
end.

There are an immense amount of similar examples possible (and if you add operator overloading in the mix, it increases exponentially), and you'd get a huge amount of "can't decide which overloaded function to call" errors even if the compiler were hacked to take the use of the function results into account.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to