DMD32 vs DMD64 array.length

Alex Rønne Petersen xtzgzorex at gmail.com
Fri Nov 11 01:59:48 PST 2011


On 11-11-2011 10:13, Andrea Fontana wrote:
> I don't think it's a good idea. In this case it's my fault, I should
> imagine that a size_t datatype exists for arrays.
> BTW on generic cases with aliases it would be useful to have an error like :
>
> "Error: cannot implicity convert expression (leaves.length) of type
> size_t (ulong) to uint."
>
> If not, i'll fix it using ulong and then when i'll go back on 32bit (or
> on a case where alias is defined in another way) compiling will fail again.
>
> Il giorno ven, 11/11/2011 alle 09.58 +0100, Alex Rønne Petersen ha scritto:
>> On 11-11-2011 09:30, Andrea Fontana wrote:
>> >  That's exactly what I was looking for. So it works as in most
>> >  programming languages :P
>> >  Dmd has deceived me. It says:
>> >
>> >  "Error: cannot implicitly convert expression (leaves.length) of type
>> >  ulong to uint"
>> >
>> >  It should say:
>> >  "Error: cannot implicitly convert expression (leaves.length) of type
>> >  size_t to uint"
>> >
>> >  Il giorno gio, 10/11/2011 alle 15.19 +0000, Dejan Lekic ha scritto:
>> >>  Andrea Fontana wrote:
>> >>
>> >>  >   Some functions (for example array length) return ulong on dmd64 e uint
>> >>  >   on dmd32
>> >>  >   I need to compile on both platform: which is the right/best/clean way?
>> >>
>> >>  Andrea, use the size_t type.
>>
>> DMD generally uses the actual type rather than the alias' name when
>> you're using an aliased type.
>>
>> - Alex

I agree, that could be useful. Could you file a Bugzilla bug?

- Alex


More information about the Digitalmars-d mailing list