What's the deal with "Warning: explicit element-wise assignment..."
Dicebot via Digitalmars-d
digitalmars-d at puremagic.com
Tue Apr 15 03:38:04 PDT 2014
On Tuesday, 15 April 2014 at 06:31:02 UTC, Andrei Alexandrescu
wrote:
> We've just enabled warnings as errors in our build system at
> work and suddenly:
>
> Warning: explicit element-wise assignment <exprnew> is better
> than <expr>
>
> where <exprnew> and <expr> are expressions picked from the
> code. For example, this wasn't accepted:
>
> writeAvail_[0 .. buf.length] = buf;
>
> but this was:
>
> writeAvail_[0 .. buf.length] = buf[];
>
> The type of the involved variables were as trivial as ubyte[]
> and in ubyte[] respectively.
>
> What's the idea?
>
>
> Andrei
It is mostly a style warning but greatly helps to reduce reading
ambiguity:
// "assign rvalue to lvalue element-wise"
// OR
// "assign rvalue to all members of lvalue"
// need to know rvalue type to be sure
lvalue[] = rvalue;
// clear and simple
lvalue[] = rvalue[];
More information about the Digitalmars-d
mailing list