El 05/12/18 a las 08:46, Jonas Maebe escribió:
On 05/12/18 07:51, LacaK wrote:
helps, but why is it not needed in Win32? Why for Win32
"integer"-"integer" is considered as "integer" so compiler can determine
which overloaded function to call and for Win64 compiler compiler can
NOT determine which overloaded function to call?
It is because as documented at
https://www.freepascal.org/docs-html/ref/refsu4.html (remarks under
table 3.2), FPC evaluates integer expressions using the native integer
type of the platform. On Win32 this is 32 bit, while on Win64 this is
64 bit. On the other hand, "integer" is always 32 bit in Delphi mode.
This means that on Win32, there is an exact match for overload
selection in your test program, while on Win64 there is not and the
int64 -> integer and int64 -> single type conversions have the same
priority.
do (LongInt -> Integer) and (Longint -> single) have the same priority?
--
Saludos
Santiago A.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal