bearophile wrote:
Andrei Alexandrescu:
If we want to allow people to create ranges that are classes (as opposed to structs) the requirement for a save() function is a must. This is because copying class ranges with
Range copy = original;
only creates a new alias for original; the two share the same state.

Do you mean a function to be called with the "dup" attribute?
Maybe such method can be called dup()?

Except as I understand it save() is only supposed to save the iteration state, not duplicate the elements being iterated over. So it has different semantics that dup. For arrays, the definition would be something like this:
    T[] save(T)(T[] arr) { return arr; }
(presumably implemented in std.range or something)

Reply via email to