Boost logo

Boost :

Subject: Re: [boost] Breaking existing libraries
From: Michael Marcin (mike.marcin_at_[hidden])
Date: 2008-12-03 14:50:17

David Abrahams wrote:
> Seems to me, requiring empty() in ranges is sort of equivalent to
> requiring iterators to support distance.

Does removing empty from the range concept prevent the empty algorithm
from being specialized for ranges with a more efficient way to determine
calculate empty?

For instance a vector-like range might store a pointer to the first
element and a element count in this case empty is

bool empty() const { return !count; }

where as the default range empty is equivalent to writing empty as

bool empty() const { return p != p+count; }

perhaps there is a range refinement which can support ranges which have
a more efficient empty?

Michael Marcin

Boost list run by bdawes at, gregod at, cpdaniel at, john at