Point taken.

And point also taken that it's not a solution to to a "half job", meaning overload only methods based on parameters, but not results. This would be a false pretence, ending people n a believe they do the right thing where they do not.

Another idea:
The programmer should be able to set himself what RTLString means, (with the default being the OS depended). It isn't really a nice solution though. But I throw it into the discussion anyway.

Otherwise I''ll have to see, If I can come up with something else.

Jonas Maebe wrote:

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
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to