On Monday, June 24, 2013 16:07:19 David wrote: > I am getting lots of errors when compiling with -w: > > // https://github.com/Dav1dde/gl3n/blob/master/gl3n/linalg.d#L144 > this(T)(T vec) if(is_vector!T && is(T.vt : vt) && (T.dimension >= > dimension)) { > vector = vec.vector[0..dimension]; > } > > this line produces following warning: > > gl3n/linalg.d(144): Warning: explicit element-wise assignment > (this.vector)[] = vec.vector[cast(ulong)0..cast(ulong)dimension] is > better than this.vector = vec.vector[cast(ulong)0..cast(ulong)dimension] > > > > Why does dmd produce this warning? (this is new in 2.063) Why is > assigning elementwise better?
According to the changelog ( http://dlang.org/changelog.html ), it sounds like it's because doing an element-wise copy is "arbitrarily expensive" (probably meaning O(n) rather than O(1)), so it potentially gave the false impression of being a simple, cheap assignment if the slicing syntax wasn't used. But I don't know what exactly went into that decision beyond what's listed in the changelog. - Jonathan M Davis