On Mon, 16 Nov 2009 09:12:52 -0500, dsimcha <dsim...@yahoo.com> wrote:

== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article
My Tree implementation iterates over all the
elements without recursion.

Yes, but looking at your implementation, you have parent pointers, which are necessary anyhow for RB trees. This makes it easier. If you aren't using an RB tree, storing parent pointers counts as an inefficiency. So does requiring a heap
allocation for an explicit stack every time a range object is created.

Ah yes, you are right. Good point. A range is impossible on such a container without an allocated stack.

To answer the original question -- opApply should be chosen, and this is
not debatable.  There is only *one* purpose for opApply -- to hook onto
foreach.  If you defined both opApply and equivalent range functions and
range functions where chosen first, opApply would be wasted code.

Agreed. I'm starting to think that this is enough of a slam-dunk to go in Bugzilla.

You mean opApply is not preferred? If so, it definitely should go in bugzilla. When I see it, I'll vote it up.

-Steve

Reply via email to