why $ is need to access array [negative index]?

claptrap clap at trap.com
Sun Sep 20 14:19:32 UTC 2020


On Sunday, 20 September 2020 at 14:06:10 UTC, IGotD- wrote:
> On Sunday, 20 September 2020 at 14:01:58 UTC, claptrap wrote:
>>
>> You dont need an extra check, you just do an unsigned 
>> comparison, negative values will interpreted as larger. IE...
>>
>> int idx = length-i;
>> assert(cast(unsigned) idx < length)
>>
>> catches anything outside the valid range.
>>
>> Yes you have the issue that the index could wrap around and 
>> end up valid, but you already have that anyway. I mean if 
>> (idx-1) is going to cause a problem so will (idx+0xFFFFFFFF)
>
> No, if -1 is going to be interpreted as the element just before 
> the end of the array you will need to have an extra check 
> additional from the extra range check.
>
> Still completely irrelevant for D as indexes are of type size_t 
> which is unsigned.

Nevermind I missunderstood the OP


More information about the Digitalmars-d mailing list