On Tuesday, 27 May 2014 at 10:50:54 UTC, BicMedium wrote:
Let's say I have a set of containers, using a D-unfriendly-semantic. They rather use a kind of ADA vocabulary (according to https://en.wikipedia.org/wiki/Deque). I want to make them "range-aware".

If the input/output ranges are easy to implement(so it's just reading/writing an element, keeping an index for the writer and another for the reader, and reseting it, isn't it ? So if (isInputRange!MyCont && isOutputRange!MyCont) then it's a "Deque", right ?). The bidirectionnal ranges or the forward ranges become more difficult to interpret with the idioms I use(Insert,Add,Remove)...Is this a kind of 3rd plane ("time": "return to previous state", "make a backup": copy/roll-back - undo/redo ?)

Could you recommend me the algos from std.algo to test efficiently my implementations ? (example, if you want to be sure that the input ranges work then you'd use this...if you want to be sure that output ranges work then you'd use that ...Some kind of "reference" unit tests ?). At the present time, each time I try one I get rejected by the template constraints...

I'm not sure, if I understand your question correctly, but I think what you need are RandomAccessRange's (cf. http://ddili.org/ders/d.en/ranges.html). You can save their state and access members randomly. However, as far as I know, the range itself should not be modified while you iterate over it.

Reply via email to