Associative Ranges

deadalnix via Digitalmars-d digitalmars-d at puremagic.com
Mon Aug 4 20:28:14 PDT 2014


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.
>

+1, I'd like to add that compiler is a good example of were this 
is useful. You'll have quick/small/throwaway and only growing map 
- to keep track of unwinding infos, break/continue/labels status, 
switch processing -, long lived one that only grow (and can grow 
big) - template instance cache, symbol table - as well as map 
where element goes in and out all the time - for internal 
machinery -.

Optimal algorithms for these use case are different, and it'd be 
great if part of the code could be factorized.

For info, SDC only uses out of the box hashmaps for now, but 
could benefit from better implementations - and doing so is 
waaaayyyyyy down the priority queue.


More information about the Digitalmars-d mailing list