On 12/02/2024 10:55, Michael Van Canneyt via fpc-pascal wrote:
On Mon, 12 Feb 2024, Thomas Kurz via fpc-pascal wrote:

I wouldn't say so. Or at least, not generally. Why can't the compiler do what the programer intends to do:

var
 s: single;
 d: double;
 e: extended;

begin
 s := 8427.0 + 33.0 / 1440.0; // treat all constants all "single"
 d := 8427.0 + 33.0 / 1440.0; // treat all constants all "double"
 e := 8427.0 + 33.0 / 1440.0; // treat all constants all "extended"
end.

You cannot do this in Pascal. The evaluation of the expression on the right of := does not
know (and should not know) what the type is of the expression on the left.

It's even theoretically impossible to do in case the result is passed to a function or intrinsic that is overloaded with single/double/extended parameters.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to