On Saturday, 6 December 2014 at 14:50:02 UTC, Nordlöw wrote:
On Saturday, 6 December 2014 at 14:14:18 UTC, Tobias Pankrath
wrote:
Because a RandomAccessRange has no means to grow in general.
Compare your proposed wrapper to
http://dlang.org/phobos/std_container.html#.BinaryHeap
So what should the basic operations in a SortedRange wrapper
template be? And how should the wrapped type be restricted?
Something like this
https://github.com/Panke/phobos/blob/std_container_sorted/std/container/sorted.d
It should additionally support c.remove(r), c.removeKey(k), opIn
and insertFront/removeFront if the underlying store supports them.
But that's pretty much it, I'd say.
Sadly, the unittest using an Array!int as store does not compile
because of of linker errors. I'm using
rdmd -unittest -main std/container/sorted.d
but that does not work with std/container/array.d as well. So, my
setup seems to be broken.