xxxInPlace or xxxCopy?
Jerry Quinn
jlquinn at optonline.net
Wed Jan 19 18:23:14 PST 2011
Andrei Alexandrescu Wrote:
> On 1/19/11 6:53 PM, Jonathan M Davis wrote:
> > On Wednesday, January 19, 2011 15:33:16 Andrei Alexandrescu wrote:
> >> I'm consolidating some routines from std.string into std.array. They are
> >> specialized for operating on arrays, and include the likes of insert,
> >> remove, replace.
> >>
> >> One question is whether operations should be performed in place or on a
> >> copy. For example:
>
> So I guess vote stays unchanged :o).
>
> >> Thoughts?
> >
> > Haven't we been using the approach that string operations generally make copies
> > (in many cases slices) and marking functions that do it in place with InPlace?
>
> Problem is, even though the example uses strings, the functions apply to
> all arrays.
The big difference is operating on immutable arrays vs mutable ones. For immutable arrays, you have to do copies. But mutable ones allow in-place editing. If I'm working with mutable arrays of ints, I don't want to have to type InPlace after every function and I *really* don't want the array to be copied or efficiency will go down the tubes.
Nor do I want to add Copy to every string operation. This might be an argument to leave the string functions where they are. To a certain extent, strings are special, even though they really aren't.
Is it too ugly to contemplate algorithms doing in-place operations on mutable arrays and return a copy instead for immutable ones?
More information about the Digitalmars-d
mailing list