On Saturday, 2 August 2014 at 15:46:31 UTC, Xinok wrote:
On Saturday, 2 August 2014 at 14:49:49 UTC, bearophile wrote:
Xinok:

I do wonder if we should generalize an interface for these types of ranges.

First of all you need some use cases and usage examples.

Bye,
bearophile

The most obvious use case is generic functions that can operate on associative ranges of any type, regardless of implementation. There are various ways to implement and optimize hash tables for specific use cases, so it would be convenient not to be restricted to a single container.

As for usage examples, I don't have any because I'm not sure what the primitives should be. I will emphasize that "associative ranges" should be distinguishable from random-access ranges. If they weren't, then we would have to comb through Phobos and add checks everywhere, e.g. (!isAssociativeRange!Range). I don't think forward ranges and bidirectional ranges would be an issue though.
It might be a ploblem if you have an Associative Range where the
key is size_t unless Associative ranges are not Input/Forward
Ranges

Reply via email to