Make if statement with stricter test
Davidl
Davidl at 126.com
Thu Apr 19 20:22:08 PDT 2007
>> if(AA) <-- invalid
>>
>> char[][char[]] k;
>> if (k) // this code should be invalid, cause it could strongly be a typo
>> or some porting mistake from some
>> C source
>>
>> I hope if(identifier) only work for Bool & Pointer types
>
> For an AA, I believe this works out to length - the length of the
> char[][] keys;
>
> if(k) I believe checks k.keys.length by virtue of being at *(&k), which
> is 0 until you assign it a buffer. This seems like the right behavior
> to me for an AA.
>
> if(k) asks if k is a non-empty Associative Array.
>
no if(k) doesn't indicate an empty AA, it just tests whether it has ever
been used.
if k has been used and then cleared, still if(k) test would pass
More information about the Digitalmars-d
mailing list