[fpc-pascal] Can't determine which overloaded function to call

Santiago A. svaa at ciberpiula.net
Wed Dec 5 17:26:25 CET 2018


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.




More information about the fpc-pascal mailing list