On 2/25/16 8:24 AM, asdf wrote:
On Thursday, 25 February 2016 at 13:06:10 UTC, cym13 wrote:
In D the binary operator "~" is used to concatenate both strings
(arrays of characters) and arrays. (also the ~= operator is
equivalent to lhs = lhs ~ rhs
Nic
Just a precision: "lhs ~= rhs" isn't exactly equivalent to "lhs = lhs
~ rhs", those are two distinct operators that may deal with memory etc
in different ways. For arrays doing "lhs = lhs ~ rhs" will first
create (and allocate) the array corresponding to "lhs ~ rhs" and then
assign this new array to lhs. On the other hand "lhs ~= rhs" realises
in-place append.
I tried both, the error this time is:
object.Exception@/data/data/com.termux/files/home/ldc/runtime/druntime/src/ldc/arrayinit.d(151):
overlapping array copy
overlapping copies are not supported.
In this case especially, the copying has to be done backwards.
I believe you could use std.algorithm.copy, but probably need to do it
with retro as well.
-Steve