On 2009-07-28 19:59:30 -0400, Andrei Alexandrescu <[email protected]> said:

The way Phobos does things is the following:

a) You must define .empty which completes in O(1).

b) If you can define .length with O(1), define it, otherwise don't.

Then Phobos defines walkLength() on a best-effort basis which is guaranteed to finish in O(n) but may finish faster. It uses .length if defined, or else it just iterates the range to exhaustion.

This looks like a good approach. I'm just not too thrilled by the name "walkLength". But perhaps I'm the only one.


--
Michel Fortin
[email protected]
http://michelf.com/

Reply via email to