On Wed, 28 Oct 2009 20:08:34 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

Denis Koroskin wrote:
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.

I see. So you want a pointer to an elaborate type featuring a key and a value.

It could return a struct holding both pointers, instead of a pointer to a struct. I don't see this as unreasonable (in fact, it's what I do in dcollections, see the cursor types). An implementation which stores the two close together in actuality may only require one pointer.

The only drawback of this is it can't be part of a formal interface, since the return type is defined by the derived type.

-Steve

Reply via email to