[fpc-devel] How to convert set to integer and vice versay

Gennady Agranov gennadyagranov at gmail.com
Wed Jul 23 05:54:58 CEST 2014


> But does that work in Delphi, did you test?

You are correct - Delphi also requires that source and target are of 
same size  - thanks!

I finally figured why existing Delphi code was not compiling - I did not 
use {$mode delphi} in the unit - i did not want to add {$mode dlephi} to
every file - so I used -Mdelphi in the fpc command line - it

program setcast;

type
   tenum = 0..63;
   tmyset= set of tenum;

var x:int64;
     y:tmyset;

begin
    writeln(sizeof(tmyset));
    x:=int64(y);
    y := tmyset(x);

end.

If you compile this program "fpc -Mdelphi setcast.pas" - it will not 
complile :(
But if you add {$mode delphi} - it will :)

And I know why - if you have {$mode delphi}  - sizeof(tmyset) is 8, but 
if you do not (and use -Mdelphi)  sizeof(tmyset) is 32
Do you know why -Mdelphi  is different from {$mode delphi} w.r.t to 
sizeof(tmyset)?

Thanks,
Gennady


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20140722/0c9c8db2/attachment.html>


More information about the fpc-devel mailing list