[fpc-pascal] Typecasting by accident

Flávio Etrusco flavio.etrusco at gmail.com
Sat May 20 23:53:58 CEST 2006


I stand corrected. I've just checked Delphi5 and indeed it allows a
direct typecast from ansistring to any object/class :-/
But Delphi also allows direct cast from enumeration value to pointer
(which FPC doesn't allow), so maybe this is another nice oportunity to
be stricter than Delphi ;-)

Cheers,
Flávio

On 5/15/06, Matt Emson <memsom at interalpha.co.uk> wrote:
>
> > No. Typecasts, as any other aspect of a language, has to have rules.
> > AFAIR this cast in Delphi would require another cast from AnsiString
> > to Pointer. And if typed pointers is enabled would require another
> > cast from Pointer to TObject.
>
> Nope. The C style cast is not type safe. Using the "as" operator is.
>
> var
>   p: pointer;
>   i: integer;
> begin
>   i := 10;
>   p := TObject(i); //will work, but is invalid
>   p := (i as TObject); //should fail (not tried) because i is not compatible
> end;
>
> M
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



More information about the fpc-pascal mailing list