On Wed, 28 Oct 2009 23:18:08 +0300, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
I'd also like you to add a few things in an AA interface.
First, opIn should not return a pointer to Value, but a pointer to a
pair of Key and Value, if possible (i.e. if this change won't sacrifice
performance).
I'm coy about adding that because it forces the implementation to hold
keys and values next to each other. I think that was a minor mistake of
STL - there's too much exposure of layout details.
It doesn't have to be the case: key and value are both properties (i.e.
methods), and they doesn't have to be located next to each other.
Second, AA.remove method should accept result of opIn operation to
avoid an additional lookup for removal:
if (auto value = key in aa) {
aa.remove(key); // an unnecessary lookup
}
I'll make aa.remove(key) always work and return a bool that tells you
whether there was a mapping or not.
Err... How does it solve the double lookup problem?