Leandro Lucarella wrote:
Andrei Alexandrescu, el 28 de octubre a las 20:29 me escribiste:
Your test looks something up and then removes it.


Andrei
Well, my extended test case looks something up, manipulates the
found value, and then possibly removes it.
Ok, I understand your points, thanks for explaining.

What about and overload of remove() like this:
bool remove(in T key, out U value);

If the element was present, it's returned in "value", so you can
manipulate it. I thought about just returning a pointer:
U* remove(in T key);

But I guess that pointer would point to the element stored in the the AA
private data, but that element was just removed, so bad things would
happen, that's why the only option is to copy the data, right?

I think this all is overdoing it. First, I disagree that remove should ever throw an exception. It's not a code that the user is supposed to check (with dire consequences if she doesn't), it's just additional information just in case you need it.

I think bool remove(key) is better than all other designs suggested so far.


Andrei

Reply via email to