On Mon, Sep 3, 2018 at 10:09 AM degski via Boost
On Mon, 3 Sep 2018 at 16:21, Peter Dimov via Boost
wrote: Edward Diener wrote:
Although it is discouraged I think allowing function, template, and class names directly in the boost namespace should be allowed when those names mimic std:: names, but with Boost functionality. I think Boost should avoid as much as possible using namespace names which are the same as std:: functions, templates, and classes.
This is impractical. New names appear in std:: every three years, it's not possible to predict in advance whether a library name will match a standard identifier. It worked in the past when C++98 was all we had, it doesn't work now.
I think that as hardly any Boost library that was adopted in the standard actually complies (sometimes more, sometimes less and sometimes just different) with the standard, the boost namespace should be enough warning that we are talking about something else than whatever is in the standard. So boost should simply do what it thinks is best from its perspective, namespace-wise.
Right. It would be ridiculous to rename an entire library because of a single using declaration that conflicts with the boost namespace policy, and basing things on the contents of std:: is silly; how many people do both "using boost" and "using std"? Such broad using declarations hide what people are actually using. Removing the using range::sort is simple and will only require people specifically using it to specify a longer name. I'm not advocating eliminating all the using declarations in the boost namespace range has.