filed as Issue #5224 - http://d.puremagic.com/issues/show_bug.cgi?id=5224
regards, Aleksandar 2010/11/16 Aleksandar Ružičić <ruzicic.aleksan...@gmail.com>: > No problem, just to isolate the code and to confirm it's not something > to other parts of my code (but I'm pretty sure it's not). > > On Tue, Nov 16, 2010 at 7:03 PM, Andrei Alexandrescu > <seewebsiteforem...@erdani.org> wrote: >> On 11/16/10 4:24 AM, Aleksandar Ružičić wrote: >>> >>> I'm trying to use remove() from std.algorithm to remove item from an >>> array and when I tried to use SwapStrategy.unstable (as I don't need >>> to maintain order of items in array and I want to optimize where ever >>> I can) I came to surprising results. In the example below one would >>> expect that item at index 2 (number 3 in example) will be removed but >>> instead item at index 0 is removed from array. >>> >>> Is this a bug or I'm missing a point? >>> >>> ----------------------------------------------------- >>> >>> import std.stdio, std.algorithm; >>> >>> void main(string[] args) { >>> >>> auto a = [1,2,3,4]; >>> >>> foreach (e; a) writef("%s ", e); writefln("(%s)", a.length); // 1 2 >>> 3 4 (4) >>> >>> auto i = a.indexOf(3); >>> >>> writefln("%s", i); // 2 >>> >>> if (i> -1) { >>> a = remove!(SwapStrategy.unstable)(a, i); >>> } >>> >>> foreach (e; a) writef("%s ", e); writefln("(%s)", a.length); // 4 2 >>> 3 (3) !?! >>> } >>> >>> ----------------------------------------------------- >>> >>> thx in advance, >>> Aleksandar >> >> Looks like a bug. Could you please file it to bugzilla? >> >> Thanks, >> >> Andrei >> >