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

Reply via email to