
Neal Becker skrev:
Giovanni Piero Deretta wrote:
I think that what Thorsten was saying ist that the whole point of using operator- is to guarantee that boost::size is *always* O(1).
With some list implementations size is O(N), so forwarding to .size() would violate the guarantee. If you really need to know the size but do not care of the complexity guarantee, you can use boost::distance.
Thank you. I understand that now. But doesn't this conflict with the range documentation? Look at the last statement:
size(x): ... std::distance(p.first,p.second) if p is of type std::pair<T> sz if a is an array of size sz end(s) - s if s is a string literal or a Char* boost_range_size(x) if that expression would invoke a function found by ADL t.size() otherwise
The docs might be out of synch. Which docs and which code are you using? -Thorsten