std.algorithm's remove
bearophile
bearophileHUGS at lycos.com
Sat Aug 24 20:27:54 PDT 2013
maarten van damme:
> But remove doesn't truly remove from the source range because
> the length of
> the source range stays the same. It's return value is a
> modified copy of
> the source range.
>
> Filter doesn't really work right away because that would also
> remove
> duplicate elements while I only want to remove at a given
> index. It also
> makes for clunkier looking code and is counterintinuitive to
> come up with
> (I want to remove an element therefore I have to filter every
> element that
> isn't equal to that element from the source range...)
> And while I haven't worked in c++, even that appears to have
> remove_copy
> which is really what I want.
I agree that the design of std.algorithm.remove is bug prone. The
compiler doesn't verify that you are using its result! I have
also filed several bugs regarding the implementation of
std.algorithm.remove.
In the end your complaints are real. You can't expect Phobos to
be perfect, but people work to fix it. Fixing such problems
future D users will not find your problem. So I suggest you to
think well about what your problem is, what you don't like on
this, and then write a enhancement request for Phobos. Even if
std.algorithm.remove can't be fixed, people can add a new
function with a safer/more handy behavour.
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list