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