Michel Fortin wrote:
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.

STL defines distance() but people tend to forget it's O(n). So I chose a name that makes it rather obvious it's O(n).

Andrei

Reply via email to