[fpc-pascal] Integer = Extended?
Daniël Mantione
daniel.mantione at freepascal.org
Thu May 17 08:22:22 CEST 2007
Op Thu, 17 May 2007, schreef Wolfram Kl=E4ger:
> What?s wrong with the following declarations:
> =
> function Any(A1 : Extended; A2 : Extended) : AnyType; overload;
> =
> function Any(A1 : Integer; A2 : Integer) : AnyType; overload;
> =
> FPC 2.04 on Win32 says, both functions have same parameter list. Conseque=
ntly, there is no error message, when I?m feeding the extended version with=
Integers.
> =
> Say, such autocast is a convenience feature in many cases. For my applica=
tion it?s weird. What is the appropriate workaround? Is there some homemade=
type checking like
> =
> if A1 is Integer then SureItsInteger else SureItsExtended?
Use exact matching parameters. FPC will try to do as little type =
conversions as possible, so if you feed your procedure with integers it =
won't call the extended version. If you want to call the extended version, =
convert the parameters to extended first.
It is however good practise to make both variants have the same semantics.
Dani=EBl
More information about the fpc-pascal
mailing list