"Thorsten Ottosen"
"David Abrahams"
wrote in message news:uacpk414w.fsf@boost-consulting.com...
| The problem is that controlling which is the best match is sometimes | very difficult. Sometimes the best match doesn't get called.
then how can it be the best match then?
Sorry, I mean "best" from a human point-of-view. I mean, "the one you want."
| Sometimes there is ambiguity. ADL is a very blunt instrument.
If the implementation was to use a class template, what would be preffered naming?
I don't know; the one I posted might be fine.
Would you want one big fat class with all the functions?
Or would you like a class for each function, say for end(), std::end_impl<T>?
I *think* that for the purpose of adapting a type to meet a concept, a fat class is probably the best way. Granularity is really most important at the interface level, so users call boost::ranges::begin(s) rather than something like boost::ranges::traits<X>::begin(s) -- Dave Abrahams Boost Consulting www.boost-consulting.com