
Inviting users to overload in your namespace is simply not a viable customization approach in general, so ADL is it.
O.k., agreed.
Why do you think ADL is o.k. for customizing boost::partition_point (soon std::partition_point, N2666), but not for customizing std::lower_bound? AFAIK, the same arguments apply to both.
Because nobody wants to customize lower_bound, upper_bound, equal_range, and binary_search when they could instead customize partition point alone.
I thought about what you are really after. You are probably envisioning future standardization, where partition_point is a fundamental operation similar to swap, and lower_bound/... implementations must invoke ADL for partition_point, just like C++0x requires it for swap. As a start, we are now adding such a lower_bound/... into boost. Is that your thinking? 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