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 >