single loop copy in D

Simen Kjærås simen.kjaras at gmail.com
Fri Mar 2 10:08:57 UTC 2018


On Friday, 2 March 2018 at 10:01:34 UTC, Jonathan M Davis wrote:
> On Friday, March 02, 2018 09:44:20 psychoticRabbit via 
> Digitalmars-d-learn wrote:
>> trying to do this C code, in D, but getting error:
>> "Error: assignment cannot be used as a condition, perhaps `==`
>> was meant?"
>>
>> any help much appreciated:
>>
>> ------
>> while ((*dst++ = *src++)) {}
>> ------
>
> You can't use = in a while loop's condition like that in D, 
> regardless of what you do with parens. You'll need to refactor 
> the code so that the assignment is done in the loop's body.

This is of course only partly true.

while ((*dst++ = *src++) != 0) {}

works just great, and also better shows what's actually being 
tested for in the loop.

--
   Simen


More information about the Digitalmars-d-learn mailing list