
I think c) is the least-bad option. Any more ideas/opinions?
Agree. You can make it look like it's in boost:: with a using-directive.
Do you mean namespace boost { using ::boost_partition_algorithms_adl_barrier::lower_bound; using ::boost_partition_algorithms_adl_barrier::upper_bound; using ::boost_partition_algorithms_adl_barrier::binary_search; using ::boost_partition_algorithms_adl_barrier::equal_range; } // namespace boost That does not work for me, and neither if the namespace is nested boost::partition_algorithms_adl_barrier. Without the using directives, all is good. With them, lower_bound is again found from inside std via ADL (on a multi_index iterator that is defined in boost namespace). If that does not work, I could implement an additional lower_bound_ (with trailing underscore), and do not implement lower_bound for broken std libraries. Pretty ugly as well. 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