[fpc-pascal] Can't determine which overloaded function to call
    Jonas Maebe 
    jonas at freepascal.org
       
    Wed Dec  5 08:46:33 CET 2018
    
    
  
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.
Jonas
    
    
More information about the fpc-pascal
mailing list