
The counting_iterator example above shows that people may want to, for special cases and not inside a library, but as an optimization for their special iterator implementation. It feels funny to me to use different techniques for different functions. And you pay the overhead of boost::bind for any call to lower_bound, customized or not. I am willing to do it, though, if that's what you prefer.
You don't have to use boost::bind. Just use the standard binders.
Are they preferable over boost/std::bind if the extra functionality of more general boost/std::bind is not needed? I think one of my functors worked with boost::bind, but didn't with std::bind1st/2nd. Maybe some typedef was missing? I have to look.
Furthermore, if you publish the type of the function object used, people can still customize all of those individual variants if they're crazy enough to want to do that.
I don't understand what you mean.
where partition_point is a fundamental operation similar to swap,
Yes
and lower_bound/... implementations must invoke ADL for partition_point, just like C++0x requires it for swap.
Yes
As a start, we are now adding such a lower_bound/... into boost. Is that your thinking?
Sorta.
O.k., I am happy we finally have agreement:-) I will send out the new version. Do you want to include it into Boost.Iterator (my preference), or as a separate library? Arno -- Dr. Arno Schoedl · aschoedl@think-cell.com Technical Director think-cell Software GmbH · Invalidenstr. 34 · 10115 Berlin, Germany http://www.think-cell.com · phone +49-30-666473-10 · toll-free (US) +1-800-891-8091 Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl · Amtsgericht Charlottenburg, HRB 85229